2012-03-08 34 views
0

ファイルシステム上のフォルダを監視するためにjdk7のWatchService APIを使用しています。ファイルがそのフォルダに入ったときに、 というメールで新しいファイルを送信していますENTRY_CRATEオプションをトリガしました。そのうまく動作します。 しかし、私が呼び出す1つのイベントではなく、2つのイベント(ENTRY_CREATE)が発生しています。Java 7のWatchServiceに関する問題

BELOW

コードです:上記のコードで

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

などのイベントのサイズをgettngてるいずれかが、私は取得していた理由を見つけるに私を助けてください2つのイベント。

答えて

0

一時的なファイルがフォルダ内に同時に作成されている可能性があります。作成しているファイルの名前とパスを確認してください。

関連する問題