自从Java 1.7以来,有一种方法可以在不添加额外库的情况下监视目录。在Oracle网站上有一个关于如何使用WatchService的小教程http://docs.oracle.com/javase/tutorial/essential/io/notification.html#try但是我很难理解。没有一个一致的例子来使用它。
因此,有人能告诉我如何将侦听器添加到目录中,并在文件添加到目录时调用方法,例如:f()
,比如说:"./folder"吗?
每次在关注的文件夹中创建文件时,都会调用这段代码:
Path path = new File("./folder").toPath();
WatchService watchService = FileSystems.getDefault().newWatchService();
path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
for (;;) {
try {
WatchKey key = watchService.take();
for (WatchEvent<?> event : key.pollEvents()) {
WatchEvent.Kind<?> kind = event.kind();
if (kind.equals(StandardWatchEventKinds.ENTRY_CREATE)) {
System.out.println("file created");
}
}
} catch (InterruptedException x) {
return;
}
}