2012-03-08 2 views
0

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

Ниже приведен код:

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(); 
    } 
} 

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

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

ответ

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^