【问题标题】:How do I unregister a directory from Java watchservice?如何从 Java watchservice 中注销目录?
【发布时间】:2017-05-13 08:26:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: java nio watchservice


    【解决方案1】:

    Watchable 接口 javadoc 中提供了注册Watchable 对象(例如Path 实例)的方法


    可观看的公共界面

    该接口定义了注册对象的注册方法 一个 WatchService 返回一个 WatchKey 来表示注册。一个 对象可以注册到多个手表服务。 通过调用密钥的注册取消 取消方法。


    所以你只需要做:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-10
        • 1970-01-01
        • 1970-01-01
        • 2014-12-16
        • 2020-05-19
        • 1970-01-01
        • 2014-05-28
        • 1970-01-01
        相关资源
        最近更新 更多