Ich möchte mehrere Verzeichnisse mit Java NIO WatchService
überwachen (überwachen). Mein Problem hier ist die Anzahl der zu betrachtenden Verzeichnisse ist dynamisch und der Benutzer kann eine beliebige Anzahl von Verzeichnissen zu WatchService
hinzufügen. Ist das erreichbar?Java nio WatchService für mehrere Verzeichnisse
5
A
Antwort
6
Es ist möglich, mehrere Pfade mit demselben WatchService
zu registrieren. Jeder Pfad erhält seine eigene WatchKey
. Die take()
oder poll()
wird dann die WatchKey
entsprechend dem Pfad zurückgeben, der geändert wurde.
Weitere Informationen finden Sie unter Java's WatchDir example.
1
Ich versuche nur zu erklären, wie genau das mit WatchService
gemacht werden kann.
ist hier ein Stück Code, das zeigt, wie Sie eine WatchService
Instanz verwenden können und zu zwei Paths
this.watcher = FileSystems.getDefault().newWatchService();
this.keys = new HashMap<>();
Path plugins = Paths.get(INSTANCE.getPluginPath());
logger.info(String.format("Scanning %s ...", plugins));
registerAll(plugins);
Path drivers = Paths.get(INSTANCE.getDriverPath());
logger.info(String.format("Scanning %s ...", drivers));
registerAll(drivers);
Das Beispiel basiert auf Oracle Example
wird hören Ja, es ist erreichbar. – Sanchit
@Sanchit Vielen Dank für Ihre Antwort. Kannst du mir bitte sagen, wie ich das erreichen kann? –