作为我的应用程序的一部分,我需要向观察者服务注册多个目录。每当目录发生变化时,我都会收到观察者服务的通知。我的要求是,对于给定的目录,有什么方法可以知道该目录是否注册到任何观察者服务?我的意思是,我
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
最佳答案
查看 java.nio.file API 我怀疑这可以通过标准方法调用来完成。 WatchService对象似乎包含了一个HashMap中注册的路径,里面叫做wdToKey;我最好的想法是循环程序中所有现有的 WatchService 对象,尝试使用反射检索它们的内部内容,并检查它们中是否有任何包含相关的 Path
关于java - 检查目录是否注册到任何观察者服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39915007/