Java 中 File.exists() 的替代方法

2024-04-10

我从没想过这种事会发生在我身上,但我遇到了 Java 中的第一个错误:

https://bugs.java.com/bugdatabase/view_bug?bug_id=5003595 https://bugs.java.com/bugdatabase/view_bug?bug_id=5003595

我几乎处于与错误(Linux 上的 NFS)中描述的完全相同的情况,并且我看到File.exists()没有返回正确的值(至少不是立即返回)。

所以我的问题是,除了这种检查文件是否存在的方法之外,还有其他选择吗?如果可能的话,我宁愿让它与操作系统无关。

编辑:我找到了解决方法。如果您致电ls $filedir,NFS 刷新给 Java 带来麻烦的任何缓存/元数据,并且File.exists()返回正确的值。诚然,这并不完全理想,因为它会损害可移植性,但有一些方法可以解决这个问题。


NFS 的基本问题是它缓存属性、文件和目录信息。这意味着该信息可能已过时。您也许可以关闭缓存,您会发现性能显着下降。

需要记住的重要一点是,NFS 不是消息传递服务,也不是为及时传送数据而设计的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中 File.exists() 的替代方法 的相关文章

随机推荐