下面是一个使用Java的FileWatcher类的实例:
import java.nio.file.*; public class FileWatcherExample { public static void main(String[] args) throws Exception { // 创建一个WatchService对象 WatchService watchService = FileSystems.getDefault().newWatchService(); // 注册监听的目录和事件类型 Path directory = Paths.get("C:/path/to/directory"); directory.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE); System.out.println("Watching directory: " + directory); // 循环监听文件变化事件 while (true) { WatchKey key; try { key = watchService.take(); } catch (InterruptedException ex) { return; } for (WatchEvent> event : key.pollEvents()) { WatchEvent.Kind> kind = event.kind(); // 处理不同的事件类型 if (kind == StandardWatchEventKinds.OVERFLOW) { continue; } else if (kind == StandardWatchEventKinds.ENTRY_CREATE) { System.out.println("File created: " + event.context()); } else if (kind == StandardWatchEventKinds.ENTRY_DELETE) { System.out.println("File deleted: " + event.context()); } } // 重置监听键,以便继续接收事件通知 boolean valid = key.reset(); if (!valid) { break; } } } }
以上代码使用了Java的WatchService和WatchKey类来监听指定目录下的文件变化事件。在这个例子中,我们注册了对文件的创建和删除事件的监听。当有文件被创建或删除时,会打印相应的信息。