java.nio.file 包未检测到目录更改

标签 java nio

我想检测正在写入目录的文件,因此认为 Java NIO 包比较合适。但是,我已经运行了他们的测试代码 ( https://docs.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java ) 它只会检测运行脚本的机器所做的文件更改。 也就是说,我们有多个服务器在运行,它们共享许多已安装的驱动器。如果我登录到这些服务器之一,运行测试代码,通过另一个终端再次登录到同一台机器并更改我正在观看的目录,这些更改将被检测到。但是,如果我登录到不同的服务器,则不会发生这些更改。这是 NIO 的基本问题吗?在这种情况下,我应该使用其他东西吗?或者是否有解决方法?

最佳答案

它有点试图警告你:WatchService

Platform dependencies

[...]

If a watched file is not located on a local storage device then it is implementation specific if changes to the file can be detected. In particular, it is not required that changes to files carried out on remote systems be detected.

恐怕您需要定期手动轮询。

关于java.nio.file 包未检测到目录更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51838123/

相关文章:

nio - 使用Java 7新IO获取文件/目录大小

java - Java Servlet 3.0 中的 session 在每次请求时都会更改

java - 无法从 mongodb java 驱动程序连接到 MLab Mongo 数据库

java - 在 Hibernate 中映射注释

java - 亚马逊 SWF @Signal

Java Serializable、ObjectInputstream、非阻塞 I/O

java - 正确处理巨大的输入和处理字符串

Java - 如何将 Files.lines() 的 URL 转换为 PATH

java - 在 Java 中有效地读取 zip 文件

java - 在java中读取文件> 4GB文件