package org.nhooo.example.io; import java.io.IOException; import java.nio.file.*; import static java.nio.file.StandardWatchEventKinds.*; public class WatchServiceGetFilename { public static void main(String[] args) { try { // 创建一个WatchService并将logDir路径注册到 // 观看ENTRY_CREATE的服务。 WatchService watcher = FileSystems.getDefault().newWatchService(); Path logDir = Paths.get("/Users/nhooo/temp"); logDir.register(watcher, ENTRY_CREATE); while (true) { WatchKey key; try { key = watcher.take(); } catch (InterruptedException e) { return; } for (WatchEvent<?> event : key.pollEvents()) { if (event.kind() == ENTRY_CREATE) { // 获取创建文件的名称。 WatchEvent<Path> ev = cast(event); Path filename = ev.context(); System.out.printf("A new file %s was created.%n", filename.getFileName()); } } key.reset(); } } catch (IOException e) { e.printStackTrace(); } } @SuppressWarnings("unchecked") private static <T> WatchEvent<T> cast(WatchEvent<?> event) { return (WatchEvent<T>)event; } }