通过Java 1.7中的WatchService监视目录更改



自从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;
        }
    }

相关内容

  • 没有找到相关文章

最新更新