Fra*_*fka 7 java directory monitoring registration java-7
我刚看到目录观察者java 7的一个很棒的功能.它会在没有轮询目录的情况下告诉您目录中发生了什么变化.
1.)但它表示,如果文件系统不支持注册更改事件,它将回退到轮询.所有典型的linux和Windows文件系统(extX,ntfs,reiserXXX,jsf,zfs)是否都支持此功能?
2.)重命名目录中的文件是创建还是更改事件?或者是一个删除和一个创建?我可以在一个系统上测试它,但它对所有文件系统都是一样的吗?
看起来您正在谈论WatchService。
ENTRY_CREATE事件的措辞表示,如果创建新文件或将文件重命名到目录中,则会感知到新条目。它缺乏关于如果文件被重命名并保留在同一目录中会触发哪些事件的规范。
该措辞还指出,服务是基于操作系统还是基于轮询取决于实现。我怀疑这是由 JRE 实现的,因此即使您知道特定操作系统支持它,也不能保证该服务将使用操作系统级别的功能或诉诸轮询。事实上,该服务根本不提供任何方法来判断它是使用轮询还是操作系统级别的功能。
API 定义的操作的行为也不像侦听器。WatchService 确实会进行自动监视,但要获取发生的事件列表,您仍然需要手动向服务请求所看到的事件。它似乎没有提供任何钩子来在出现新事件时自动调用。