learning java 使用WatchService监控文件变化
import java.io.IOException; import java.nio.file.*; public class WatchServiceTest { public static void main(String[] args) throws IOException, InterruptedException { WatchService watchService = FileSystems.getDefault().newWatchService(); Paths.get("C:/").register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_CREATE); while ( true ){ WatchKey key = watchService.take(); for ( WatchEvent<?> event : key.pollEvents()) { System.out.println(event.context() + "文件发生了 " + event.kind() + "事件"); } boolean valid = key.reset(); if (!valid) break; } } }
output:
新建 Microsoft Word 文档.docx文件发生了 ENTRY_CREATE事件 ~$ Microsoft Word 文档.docx文件发生了 ENTRY_CREATE事件 ~WRD0000.tmp文件发生了 ENTRY_CREATE事件 新建 Microsoft Word 文档.docx文件发生了 ENTRY_DELETE事件 ~WRL0001.tmp文件发生了 ENTRY_CREATE事件 ~WRD0000.tmp文件发生了 ENTRY_DELETE事件 新建 Microsoft Word 文档.docx文件发生了 ENTRY_CREATE事件 ~WRL0001.tmp文件发生了 ENTRY_DELETE事件 ~$ Microsoft Word 文档.docx文件发生了 ENTRY_DELETE事件