如何从Java watchservice取消注册目录?

时间:2017-05-13 08:26:01

标签: java nio watchservice

我在watchService中注册了一个文件夹:

path.register(watchService, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);

稍后,我想取消此注册。我知道我需要告诉watchService我要取消哪个WatchKey。完成此任务的正确功能是什么?

2 个答案:

答案 0 :(得分:4)

您拥有Watchable接口javadoc中提供注册Watchable对象的方法(例如Path实例)的信息。

公共界面Watchable

  

此接口定义用于注册对象的寄存器方法   一个WatchService返回一个WatchKey来表示注册。一个   对象可以在多个监视服务中注册。   注册,并通过调用密钥取消取消   取消方法。

所以你要做的就是:

WatchKey watchKey = path.register(watchService, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
...
watchKey.cancel();

答案 1 :(得分:0)

register方法返回WatchKey,如documentation中所述,它具有cancel()方法。