作为我的应用程序的一部分,我需要将多个目录注册到watcher服务。每当目录发生变化时,我都会收到观察者服务通知。我的要求是,对于给定的目录,是否有任何方法可以知道该目录是否已注册到任何观察者服务?我的意思是,我
Path path = new File("/Users/myDoc").toPath();
WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
public static boolean isDirectoryRegisteredToAnyWatcherService(Path path){
//Return true, if this directory is registered to any watcher service, else false.
}
参考
https://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html
答案 0 :(得分:1)
看一下java.nio.file API我怀疑可以通过标准方法调用来完成。 WatchService对象似乎包含内部名为wdToKey的HashMap中的注册路径;我最好的想法是遍历程序中所有现有的WatchService对象,尝试使用反射检索其内部内容,并检查它们中是否包含相关路径