티스토리 뷰

728x90
반응형
SMALL

Java File Watch Service

WatchService를 이용한 디렉토리 변경 감지

1. WatchService를 사용해서 디렉토리 내의 file 삭제, 생성, 변경 감지.

  • watchservice 의 create, modify, delete 감지

  • 간단한 설명은 주석으로 .....

    WatchService watchService = FileSystems.getDefault().newWatchService();  
    Path path = FileSystems.getDefault().getPath("D:/watchTestDir");  
    path.register(watchService,  
         // Create Event
         StandardWatchEventKinds.ENTRY_CREATE,  
         // Delete Event
         StandardWatchEventKinds.ENTRY_DELETE,  
         // Modify Event
         StandardWatchEventKinds.ENTRY_MODIFY  
    );  
    while (true) {  
     // Service 실행
     WatchKey key = watchService.take();  
     List<WatchEvent<?>> watchEventList = key.pollEvents();  
     // List에서 WatchEvent를 하나씩 꺼내서 Event의 종류와 path 처리
     for (WatchEvent<?> event : watchEventList) {  
         // Event 종류
         WatchEvent.Kind<?> kind = event.kind();  
         // 감지된 file path
         Path filePath = (Path) event.context();  
    
         if (kind.equals(StandardWatchEventKinds.ENTRY_CREATE)) {  
             // Create됬을 때 실행
             System.out.println("Create : " + filePath.getFileName());  
         } else if (kind.equals(StandardWatchEventKinds.ENTRY_DELETE)) { 
             // Delete됬을 때 실행 
             System.out.println("Delete : " + filePath.getFileName());  
         } else if (kind.equals(StandardWatchEventKinds.ENTRY_MODIFY)) { 
             // Modify됬을 때 실행 
             System.out.println("Modify : " + filePath.getFileName());  
         } else if (kind.equals(StandardWatchEventKinds.OVERFLOW)) {  
             System.out.println("OVERFLOW");  
         }  
     }  
     if (!key.reset())  
         break;  
    }  
    watchService.close();
728x90
반응형
LIST

'Java > Java study....' 카테고리의 다른 글

Java foreach이용, collection의 모든object 출력  (0) 2021.01.12
댓글
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함