【问题标题】:Detect file system changes on Samba share with Java on Windows在 Windows 上使用 Java 检测 Samba 共享上的文件系统更改
【发布时间】:2010-03-08 08:44:57
【问题描述】:

对于最近的一个项目,我需要从 windows 上的 java 检测映射的 Samba 共享上的文件系统更改:创建、更新和删除。目前,我正在使用文件夹轮询来维护文件列表及其修改后的时间戳来查找事件。

但我的问题是,此文件夹轮询仅在特定时间(例如每 10 秒)查看文件夹,因此更新的文件可以在两次轮询之间更新两次而不会识别。

当文件事件发生在该 mappep Samba 共享上时,是否有任何方法可以从 Java 中的窗口获取事件?

谢谢!

【问题讨论】:

    标签: java windows events samba share


    【解决方案1】:

    Java 在当前的 IO api 中没有任何东西来处理来自 O/S 的文件通知。

    Java 7 将有一个新的 IO API JSR-203,它有一个 watch file API,将使用原生 O/S 通知 或 轮询 strong> 如果不支持通知来检测文件更改。

    与此同时,您可以查看是否有人实现了一个库,该库允许您通过 JNI 挂钩到 O/S 通知。我认为 IntelliJ IDEA 为此目的使用了本机库。

    在 Sourceforge 上我找到了 jfilenotify,但我从未使用过。

    或者,您可以提高采样频率(但这会开始影响您的文件系统)或通过在文件名中添加版本号来更改文件的写入方式/folder 以便您可以轻松判断何时发生了变化。

    【讨论】:

      【解决方案2】:

      根据this forum entry TeamDev JNIWrapper 能够按照我的意愿执行此操作。我刚买了一本。谢谢你和

      问候, 加德

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多