2013-03-20 2 views
5

Java NIO WatchService을 사용하여 여러 디렉터리를 감시 (모니터)하고 싶습니다. 여기 내 문제는 감시 할 디렉토리 수가 동적이며 사용자가 WatchService에 원하는 수의 디렉토리를 추가 할 수 있다는 것입니다. 달성 가능합니까?여러 디렉터리에 대한 Java nio WatchService

+2

을 기반으로 두 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); 

을들을 수있는 방법을 보여 그 코드의 조각이다. – Sanchit

+0

@Sanchit 답변 해 주셔서 감사합니다. 이걸 어떻게 달성 할 수 있는지 안내해 주시겠습니까? –

답변

6

WatchService으로 여러 경로를 등록 할 수 있습니다. 각 경로는 자체적으로 WatchKey이됩니다. take() 또는 poll()은 수정 된 경로에 해당하는 WatchKey을 반환합니다.

자세한 내용은 Java's WatchDir example을 참조하십시오.

1

나는 정확히 정확히 WatchService을 사용하여이를 수행 할 수있는 방법을 설명하려고합니다. 여기

는 하나 개 WatchService 인스턴스를 사용하고 예는 예, 그것은 달성 Oracle Example