티스토리 뷰
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 |
---|
댓글