package coin; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Path; import java.nio.file.StandardWatchEventKinds; import java.nio.file.WatchEvent; import java.nio.file.WatchKey; import java.nio.file.WatchService; /** * 如果指定的目录内的文件发生改变,则会打印语句。 * 监控指定目录下文件的改动。 * @author wrpc * */ public class WatchServiceDemo { public static void main(String[] args) { boolean shutdown = false; try { WatchService watcher = FileSystems.getDefault().newWatchService(); Path dir = FileSystems.getDefault().getPath("C:\workspace\demo\src"); WatchKey key = dir.register(watcher, StandardWatchEventKinds.ENTRY_MODIFY); while(!shutdown) {
key = watcher.take(); for (WatchEvent<?> event : key.pollEvents()) { if(event.kind() == StandardWatchEventKinds.ENTRY_MODIFY) { System.out.println("Home dir changed."); } } key.reset(); } } catch (IOException e) { e.printStackTrace(); } } }