Java 检查目录是否已注册到任何监视程序服务?
作为我的应用程序的一部分,我需要向watcher服务注册多个目录。每当目录发生更改时,我都会收到watcher服务的通知。我的要求是,对于给定的目录,是否有任何方法可以知道该目录是否已注册到任何watcher服务?我是说,我Java 检查目录是否已注册到任何监视程序服务?,java,Java,作为我的应用程序的一部分,我需要向watcher服务注册多个目录。每当目录发生更改时,我都会收到watcher服务的通知。我的要求是,对于给定的目录,是否有任何方法可以知道该目录是否已注册到任何watcher服务?我是说,我 Path path = new File("/Users/myDoc").toPath(); WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY); public st
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.
}
参考文献
看看java.nio.file API,我怀疑用标准方法调用可以做到这一点。WatchService对象似乎包含内部名为wdToKey的哈希映射中的注册路径;我最好的办法是循环检查程序中所有现有的WatchService对象,尝试使用反射检索它们的内部内容,并检查它们是否包含相关路径我也搜索了Java API,没有找到任何…感谢您的回答。