Desidero guardare (monitorare) più directory utilizzando Java NIO WatchService
. Il mio problema qui è che il numero di directory da guardare è dinamico e l'utente può aggiungere qualsiasi numero di directory allo WatchService
. È possibile?Java nio WatchService per più directory
5
A
risposta
6
È possibile registrare più percorsi con lo stesso WatchService
. Ogni percorso ottiene il proprio WatchKey
. Lo take()
o poll()
restituirà quindi lo WatchKey
corrispondente al percorso che è stato modificato.
Vedere Java's WatchDir example per dettagli.
1
Sto solo cercando di spiegare come esattamente questo può essere fatto utilizzando WatchService
.
Ecco un pezzo di codice che illustra come è possibile utilizzare una WatchService
istanza e ascoltare due 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);
L'esempio si basa su Oracle Example
Sì, è realizzabile. – Sanchit
@Sanchit Grazie per la risposta. Puoi per favore guidarmi come ottenere questo –