如何从Java WatchService中注销一个目录?

4

我将一个文件夹注册到了我的WatchService中:

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

之后,我想取消此注册。我知道我需要以某种方式告诉watchService我要取消哪个WatchKey。有什么正确的函数可以完成这个任务吗?

2个回答

8
您可以在Watchable接口的javadoc中找到有关注册Watchable对象(例如Path实例)的方法信息。


public interface Watchable

此接口定义了register方法,以向WatchService注册对象并返回WatchKey以代表注册。一个对象可以与多个watch service注册。
通过调用键的cancel方法取消与watch service的注册。


所以你只需要:

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

3

register方法返回文档中描述的WatchKey,该WatchKey具有cancel()方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接