0

ファイルシステム上のフォルダーを監視するために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 つのイベントが発生する理由を見つけるのを手伝ってください。

4

1 に答える 1

0

同時にフォルダーにいくつかの一時ファイルが作成されている可能性があると推測しています。作成中のファイルの名前/パスを確認してください。

于 2012-06-24T14:58:48.943 に答える