У меня есть программа, которая отслеживает каталог для обновления файлов, используя WatchService
. Я получаю события, когда изменяю файл. Однако я заметил, что даже если я открываю файл в vi и не изменяю его содержимое, вызывается метод службы наблюдения poll
. Мой код выглядит следующим образом:
watcher = FileSystems.getDefault().newWatchService();
Path path = Paths.get("conf");
path.register(watcher, ENTRY_MODIFY);
WatchKey key = null;
key = watcher.poll(MAX_WAIT_TIME, TimeUnit.SECONDS);
if (key != null) {
for (WatchEvent<?> events : key.pollEvents()) {
WatchEvent<Path> ev = cast(events);
Path fileName = ev.context();
}
В приведенном выше коде watcher.poll ожидает MAX_WAIT_TIME
для события ENTRY_MODIFY
. Однако, когда я открываю файл в просматриваемом каталоге и закрываю без изменения его содержимого... watcher.poll
получает событие и перестает ждать. Есть ли какой-то параметр, который нужно установить, а я отсутствует?