gpt4 book ai didi

java - 在 Windows 上使用 Java 检测 Samba 共享上的文件系统更改

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:26 28 4
gpt4 key购买 nike

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

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

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

谢谢!

最佳答案

Java 在当前的 IO api 中没有任何东西来处理来自操作系统的文件通知。

Java 7 将有一个新的 IO API JSR-203,其具有 watch file API如果不支持通知来检测文件更改,则将使用 native 操作系统通知轮询

同时,您可以查看是否有人实现了一个库,允许您通过 JNI 连接到操作系统通知。我认为 IntelliJ IDEA 使用 native 库来实现此目的。

在 Sourceforge 上我发现 jfilenotify 但我从未使用过它。

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

关于java - 在 Windows 上使用 Java 检测 Samba 共享上的文件系统更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2400117/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com