2015-03-12 5 views
0

Я пытаюсь контролировать файлы в java. Когда произойдет модификация файла, я хочу знать:Получить информацию об измененном файле в Java

  1. Какой процесс внес изменения.
  2. Что изменилось.

Кроме того, я знаю, что есть способ изменить «последнюю измененную дату» в файле, поэтому я хочу проверить, изменилось ли это поле.

Я пробовал «commons.io», «DefaultFileMonitor» и «WatchService», но вся информация, которую я мог получить от них, была, если произошли изменения и файл, который был изменен.

+0

Если вы хотите знать, какие именно изменения произошли, вам необходимо знать содержимое файла перед изменением, а затем сравнить его с измененным файлом. –

ответ

1

Если вы не находитесь в странной ОС, я ничего не знаю об этом, вам нужно будет использовать какой-то механизм, который вы реализуете, чтобы отслеживать, кто меняет ваш файл. ОС не отслеживает это. Он также не отслеживает, что изменилось.

Поэтому я не верю, что вы можете сделать # 1, если вы не можете получить каждый процесс, который МОЖЕТ изменить файл, чтобы отслеживать, что он внес изменения.

Вы можете сделать # 2, если вы сохранили копии файла, а затем выполните сравнение.

0

Я уверен, что вы не можете этого сделать. Ни ОС, ни Java не хранят такую ​​информацию. Возможно, использование некоторых вызовов ядра.