java 7中的WatchService问题

时间:2012-03-08 13:15:33

标签: java-7 watchservice

我正在使用jdk7的WatchService API来监控文件系统上的文件夹。我发送了一个新文件 发送到该文件夹​​的电子邮件,当文件进入该文件夹时触发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 :(得分:0)

我猜测文件夹中可能同时创建了一些临时文件。只需检查正在创建的文件的名称/路径。