2010-03-08 90 views
1

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

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

当在mappep Samba共享上发生文件事件时,有没有办法从Java内部的窗口获取事件?

谢谢!

回答

1

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

的Java 7将会有一个新的IO API JSR-203具有watch file API将要么使用本地O/S通知轮询如果通知不支持的检测文件更改。

与此同时,您可以查看是否有人实施了一个库,允许您通过JNI挂接到O/S通知。我认为IntelliJ IDEA为此使用了一个本地lib。

寻找Sourceforge上,我发现jfilenotify,但我从来没有使用过。

另外,您可以增加采样频率(但这将开始捶你的文件系统)或更改文件如何被添加版本号到文件名/文件夹的写出来,这样就可以很容易地知道什么时候事情已经改变。

相关问题