我希望使用 Apache Commons 目录监控,但在我的第一次尝试中,我发现它通过子目录递归检查。这比我想要的要多得多(而且可能还有更多的开销)。
FileAlterationObserver observer = new FileAlterationObserver(new File(directoryPath));
有没有办法关闭此行为,以便我只收到指定目录内的更改通知?
如果您阅读 javadoc,就会发现有一个接受
FileFilter
的重载。传入一个过滤器,检查任何文件与所选目录具有相同的父目录:
File dir = new File(directoryPath);
FileAlterationObserver observer = new FileAlterationObserver(dir, f -> dir.equals(f.getParentFile()));
我不使用这个类,所以可能有更好的方法。