Java 7 watcherservice - 过滤要观看的文件

Mic*_*l L 2 java-7

我正在使用观察者服务,效果很好。我只需要监视具有特定扩展名的文件,例如 .xml。我怎样才能实现这个?

谢谢。

111*_*01b 5

似乎没有内置的文件扩展名过滤器(就像使用旧的 java.io.FileFilter 接口一样)。我通过在处理代码中添加“if”语句解决了同样的问题,如下所示:

// Watcher gives key and you get event...

WatchEvent<Path> ev = (WatchEvent<Path>) event;
Path file = dir.resolve(ev.context());
if (isCorrectFileType(file)) {
    // Do you processing here.
}
Run Code Online (Sandbox Code Playgroud)

以及简单的检查:

private boolean isCorrectFileType(Path file) {
    return (file.toString().endsWith(".xml"));
}
Run Code Online (Sandbox Code Playgroud)