ファイルシステム上のフォルダーを監視するためにjdk7のWatchService APIを使用しています.ファイルがそのフォルダーに入ると、そのフォルダーに電子メールで新しいファイルを送信し、ENTRY_CRATEオプションをトリガーします。その正常に動作します。しかし、問題は、呼び出している 1 つのイベントではなく、ENTRY_CREATE の 2 つのイベントを生成することです。
以下はコードです:
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 にしています。
2 つのイベントが発生する理由を見つけるのを手伝ってください。