我在 JDK7 中使用 Watcher,它依赖于 inotify 事件。如果文件位于 NFS 上,我希望我的程序回退并使用轮询。有没有办法检测文件是否位于远程驱动器上(除了使用 Runtime.exec 和解析安装表之外)?我现在只关心 Linux 兼容性。
我认为一种选择是在程序启动时同时使用 inotify 和轮询,但如果为我的文件创建了 inotify 事件,则禁用轮询线程。
最佳答案
您应该能够通过FileStore.type()获得有关底层文件系统类型的相对可靠的信息。 .
它肯定会告诉你它是 NFS 还是 CIFS,不确定其他网络挂载类型。
但是我不知道它的可靠性如何,@hoaz 建议检查事件是否通过可能是个好主意。
关于java - 在Java中检测远程文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22137854/