我可以在 Java 7 中创建多少个 newWatchService



我可以制作多少个新手表服务?

try{
    for(Path path : PathList) {
        watcher = path.getFileSystem().newWatchService();
    } catch (IOException e) {
        log.error(e);
    }
}
-

->结果:IOExeption:打开的文件太多...

我认为您应该只创建一个观察者服务,但注册[m]任何路径。

根据 Oracle docs (https://docs.oracle.com/javase/tutorial/essential/io/walk.html) 给出的示例,只创建了一个监视服务,作为 WatchDir 类的成员变量。 注意"this.watcher"

public class WatchDir {
    private final WatchService watcher;

在课堂的其他地方...

 /**
 * Creates a WatchService and registers the given directory
  */
WatchDir(Path dir, boolean recursive) throws IOException {
    this.watcher = FileSystems.getDefault().newWatchService();

同一服务用于递归注册给定文件夹中的所有路径。

最后,注册在这里进行...

/**
 * Register the given directory with the WatchService
 */
private void register(Path dir) throws IOException {
    WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);

相关内容

  • 没有找到相关文章

最新更新