JDK7 的java.nio.file
包有一个WatchService
支持文件更改通知。我成功监控了一个目录,但我有一个String
包含需要并行监控的目录的数组(如d:\channel1
d:\channel2
d:\channel3
d:\channel4
d:\channel5
)。
在监控中,我们将传递目录名称并提供无限循环,因此它会一直监视目录而不关闭循环。但是现在我有一个数组字符串,其中包含需要监视的目录。但是这个目录是从 XML 配置并解析它并获取目录名称的,因此在功能上可能会增加或减少要监视的目录(只是目录是基于 XML 配置的动态)。所以我在字符串数组中获取这些目录。由于此服务是无限循环的,因此当我遍历字符串数组时,它不会移动到下一个目录。
下面是我循环字符串数组的代码。
String[] path = parseXML.getOutDirNames();
for(String str : path){
Path dir = Paths.get(str);
new WatchDir(dir, true).processEvents();
}