2012-11-13 22 views
1

JDK7的java.nio.file封装具有WatchService支持文件更改通知。 我成功地监视了一个目录,但我有一个String阵列,其中包含需要并行监视的目录(如d:\channel1d:\channel2d:\channel3d:\channel4d:\channel5)。如何使手表目录服务来监视多个文件夹

在这里,在监控中,我们将通过目录名,并提供无限循环,所以在手表保持目录而不关闭循环。但是现在我有一个数组的字符串,其中包含需要监视的目录。但是,这些目录是从XML配置并解析它并获取目录名称,因此在功能中可能会增加或减少要监视的目录(只需目录基于xml配置是动态的。)所以我得到这些字符串数组中的目录。由于这个服务是无限循环,所以当我遍历字符串数组时,它不会移动到下一个目录。请任何人都可以帮助如何实现多个目录。

下面是代码,其中i遍历字符串数组。

String[] path = parseXML.getOutDirNames(); 
for(String str : path){ 
    Path dir = Paths.get(str); 
    new WatchDir(dir, true).processEvents(); 
} 

感谢

+0

我不明白的问题固定它。所以你有一个无限循环做什么? –

+0

@MattiLyra监视目录,应该使用无限循环来实现。所以它一直在检查目录,除非循环被打破。因为我现在有一些要在String数组中监视的路径,请求不会移动到数组的下一个索引来监视目录。 – developer

+1

@developer写一个无限循环无疑是实现目录监控恕我直言,以错误的方式... – Yahia

回答

0

我很高兴,我改变对上面的循环来为无穷for循环

for(;;){ 
for(String str : path){ 
    Path dir = Paths.get(str); 
    new WatchDir(dir, true).processEvents(); 
} 
}