java - 在Java中检测远程文件

标签 java nio nfs inotify

我在 JDK7 中使用 Watcher,它依赖于 inotify 事件。如果文件位于 NFS 上,我希望我的程序回退并使用轮询。有没有办法检测文件是否位于远程驱动器上(除了使用 Runtime.exec 和解析安装表之外)?我现在只关心 Linux 兼容性。

我认为一种选择是在程序启动时同时使用 inotify 和轮询,但如果为我的文件创建了 inotify 事件,则禁用轮询线程。

最佳答案

您应该能够通过FileStore.type()获得有关底层文件系统类型的相对可靠的信息。 .

它肯定会告诉你它是 NFS 还是 CIFS,不确定其他网络挂载类型。

但是我不知道它的可靠性如何,@hoaz 建议检查事件是否通过可能是个好主意。

关于java - 在Java中检测远程文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22137854/

相关文章:

java - 简单的 StringBuilder 构造函数/方法问题

java - 读取NIO中的数据

java - 当我的java进程重命名源文件时,任何进程都可以读取目标文件吗

linux-kernel - NFS挂载超时

Kubernetes nfs 提供者 selfLink 为空

java - 在 Java 中使用类的接口(interface)

java - 连接两个对象数组的最有效方法

linux - ESXi 5.1 虚拟机不再能够从其他虚拟机挂载 NFS 共享

java - java流在创建不可变列表时是否创建一些临时列表?

java NIO独立读/写