Ubuntu Java WatchService被打破了



这是我使用监视器更改文件夹的代码:

    WatchService watcher = FileSystems.getDefault().newWatchService();
    Path dir = Paths.get("/home/user/test/");
    dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
    System.out.println("Begin monitor to test folder: ");
    for (;;) {
        // wait for key to be signaled
        WatchKey key;
        try {
            key = watcher.take();
        } catch (InterruptedException x) {
            return;
        }
        for (WatchEvent<?> event: key.pollEvents()) {
            WatchEvent.Kind<?> kind = event.kind();
            // The filename is the
            // context of the event.
            @SuppressWarnings("unchecked")
            WatchEvent<Path> ev = (WatchEvent<Path>)event;
            Path filename = ev.context();
            if (filename.toString().startsWith(".")) continue;
            if (kind == OVERFLOW) {
                continue;
            } else if (kind == ENTRY_CREATE) {
                System.out.println(kind.name() + ":" +filename);
            } else if (kind == ENTRY_DELETE) {
                System.out.println(kind.name() + ":" +filename);
            } else if (kind == ENTRY_MODIFY) {
                System.out.println(kind.name() + ":" +filename);
            }
        }
        boolean valid = key.reset();
        if (!valid) {
            break;
        }
    }

在Windown,Mac OS上很棒,但是在Ubuntu 16.04上运行时,我面临问题:对于Watched文件夹中存在的文件:当我编辑文件时,我想获得Modify Event
时,我的接收器创建事件请帮助我

谢谢。

确保您使用的程序在Ubuntu中编辑文件不会创建隐藏的文件。一些编辑这样做是为了确保程序崩溃时不会丢失任何更改。

因此,请确保您的编辑器在编辑文件时不会创建隐藏的文件,并且如果它确实使用另一个程序或处理隐藏的"子文件"。

相关内容

  • 没有找到相关文章

最新更新