Проблема с WatchService в Java 7 - PullRequest
0 голосов
/ 08 марта 2012

Я использую WatchService API jdk7 для мониторинга папки в файловой системе. Я отправляю новый файл по электронной почте в эту папку, когда файл попадает в эту папку, и я запускаю опцию ENTRY_CRATE.работает нормально.Но проблема в том, что он генерирует два события ENTRY_CREATE вместо одного события, которое я вызываю.

НИЖЕ КОД:

Path dir =  Paths.get(/var/mail);
WatchService watcher = dir.getFileSystem().newWatchService();       

dir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE);        
System.out.println("waiting for new file");
WatchKey watckKey = watcher.take(); 
List<WatchEvent<?>> events = watckKey.pollEvents();
System.out.println(events.size());              

for(WatchEvent<?> event : events){  
    if(event.kind() == StandardWatchEventKinds.ENTRY_CREATE){ 
        String fileCreated=event.context().toString().trim();
    }
}

В приведенном выше коде я получаю событияразмер как 2.

Может ли кто-нибудь помочь мне выяснить причину, почему я получаю два события.

1 Ответ

0 голосов
/ 24 июня 2012

Я предполагаю, что в папке могут одновременно создаваться временные файлы. Просто проверьте, как называются / пути создаваемого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...