我不明白,怎么做
watcher.take();
会知道要报告的目录吗?它是否报告了它所注册的每个目录?
dir.register(watcher...
如果我有多个观察者,他们会仅报告那些针对他们注册的目录吗?
register()的返回值的目的是什么?它似乎从未在此处的说明中使用过:http://docs.oracle.com/javase/tutorial/essential/io/notification.html
答案 0 :(得分:2)
您使用位于Path
的{{1}} Path
的{{1}}至register
个文件。
如果事件发生,它将在WatchService
中排队,您可以使用take()
检索它。 WatchService
无法了解实际的take()
。
是的,Path
只会报告在其中注册的WatchService
的事件。
您可以使用Path
方法返回的WatchKey
与register
返回的WatchKey
进行比较。显然,您也可以完成所有the things described in the javadoc.