如何使用WatchService观看多个目录?

时间:2014-10-02 15:05:47

标签: java nio watchservice

我不明白,怎么做

watcher.take();

会知道要报告的目录吗?它是否报告了它所注册的每个目录?

dir.register(watcher...

如果我有多个观察者,他们会仅报告那些针对他们注册的目录吗?

register()的返回值的目的是什么?它似乎从未在此处的说明中使用过:http://docs.oracle.com/javase/tutorial/essential/io/notification.html

1 个答案:

答案 0 :(得分:2)

您使用位于Path的{​​{1}} Path的{​​{1}}至register个文件。

如果事件发生,它将在WatchService中排队,您可以使用take()检索它。 WatchService无法了解实际的take()

是的,Path只会报告在其中注册的WatchService的事件。

您可以使用Path方法返回的WatchKeyregister返回的WatchKey进行比较。显然,您也可以完成所有the things described in the javadoc.