2012-03-08 3 views
0

파일 시스템의 폴더를 모니터링하기 위해 jdk7의 WatchService API를 사용하고 있습니다. 파일이 해당 폴더에 들어 오면 새 파일을 해당 폴더로 보내고 있습니다. ENTRY_CRATE 옵션을 트리거합니다. . 그것의 일 벌금. 하지만 문제는 내가 호출하는 하나의 이벤트 대신 ENTRY_CREATE의 두 이벤트를 생성하는 것입니다. 내가 갖는 이유는 위의 코드에서Java 7에서 WatchService 관련 문제

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 해요 : 아래

는 코드입니다 두 가지 사건.

답변

0

동시에 임시 파일이 폴더에 생성 될 수도 있습니다. 생성되는 파일의 이름/경로가 무엇인지 확인하십시오.