2013-03-20 13 views
5

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

+2

Sì, è realizzabile. – Sanchit

+0

@Sanchit Grazie per la risposta. Puoi per favore guidarmi come ottenere questo –

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

Problemi correlati