【发布时间】:2017-05-13 08:26:00
【问题描述】:
我在 watchService 中注册了一个文件夹:
path.register(watchService, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
稍后,我想取消此注册。我知道我需要以某种方式告诉 watchService 我要取消哪个 WatchKey。完成此任务的正确函数是什么?
【问题讨论】:
标签: java nio watchservice
我在 watchService 中注册了一个文件夹:
path.register(watchService, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
稍后,我想取消此注册。我知道我需要以某种方式告诉 watchService 我要取消哪个 WatchKey。完成此任务的正确函数是什么?
【问题讨论】:
标签: java nio watchservice
Watchable 接口 javadoc 中提供了注册Watchable 对象(例如Path 实例)的方法
可观看的公共界面
该接口定义了注册对象的注册方法 一个 WatchService 返回一个 WatchKey 来表示注册。一个 对象可以注册到多个手表服务。 通过调用密钥的注册取消 取消方法。
所以你只需要做:
WatchKey watchKey = path.register(watchService, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
...
watchKey.cancel();
【讨论】:
register 方法返回 WatchKey,如 documentation 中所述,它有一个 cancel() 方法。
【讨论】: