2016-10-07 8 views
1

私のアプリケーションの一環として、ウォッチャーサービスに複数のディレクトリを登録する必要があります。ディレクトリに変更があるたびに、私はウォッチャーサービスによって通知されます。私の要件は、特定のディレクトリに対して、そのディレクトリがどのウォッチャーサービスにも登録されているかどうかを知る方法はありますか?私はそれが標準のメソッド呼び出しを行うことができます疑う、私はディレクトリがウォッチャーサービスに登録されているかどうかを確認しますか?

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

答えて

1

がjava.nio.fileのAPIのいくつかを見て持つ意味します。 WatchServiceオブジェクトには、内部のwdToKeyというHashMap内に登録されたパスが含まれているようです。私の最善のアイデアは、プログラム内の既存のすべてのWatchServiceオブジェクトをループし、リフレクションを使用して内部のコンテンツを取得しようとしているかどうかを調べることです。

+0

私もJava APISを検索しました。 ..答えに感謝します。 –

関連する問題