目录观察者延迟

时间:2016-07-08 20:34:00

标签: java directory

使用此代码时,目录观看工作正常,但只有当修改的文件日期改变至少一分钟时才会更新,这对我来说还不够快,如果我在文件夹中垃圾邮件f5来刷新它,代码看到所有的变化 - 几乎是即时的,我希望观察者在没有任何用户输入的情况下做到这一点,我可能有它,也许它有文件大小监视(但我没有找到检查大小的条目)?因为字节大小更具体,而不是一分钟的时间核对标记,所以我对其他想法开放

public class DirectoryWatchDemo {

public static void main(String[] args) {
    try {
        WatchService watcher = FileSystems.getDefault().newWatchService();
        Path dir = Paths.get("C:\\Program Files (x86)\\logs");
        dir.register(watcher, new WatchEvent.Kind[]{StandardWatchEventKinds.ENTRY_MODIFY}, SensitivityWatchEventModifier.HIGH);

        System.out.println("Watch Service registered for dir: " + dir.getFileName());

        while (true) {
            WatchKey key;
            try {
                key = watcher.take();
            } catch (InterruptedException ex) {
                return;
            }

            for (WatchEvent<?> event : key.pollEvents()) {
                WatchEvent.Kind<?> kind = event.kind();

                @SuppressWarnings("unchecked")
                WatchEvent<Path> ev = (WatchEvent<Path>) event;
                Path fileName = ev.context();

                System.out.println(kind.name() + ": " + fileName);

                if (kind == ENTRY_MODIFY &&
                        fileName.toString().equals("console.log")) {
                    System.out.println("My source file has changed!!!");
                }
            }

            boolean valid = key.reset();
            if (!valid) {
                break;
            }
        }

    } catch (IOException ex) {
        System.err.println(ex);
    }
}

}

1 个答案:

答案 0 :(得分:0)

在错误阅读问题后被作者删除

相关问题