我从没想过它会发生在我身上,但我遇到了我在 Java 中的第一个错误:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5003595
我几乎处于与错误(Linux 上的 NFS)中描述的完全相同的情况,并且我看到它File.exists()
没有返回正确的值(至少不是马上)。
所以我的问题是,这种检查文件是否存在的方法有什么替代方法吗?如果可能的话,我更愿意让它与操作系统无关。
编辑:我找到了一种解决方法。如果您调用ls $filedir
,NFS 会刷新任何给 Java 带来麻烦的缓存/元数据,并File.exists()
返回正确的值。当然,这并不完全理想,因为它会损害便携性,但有一些方法可以解决这个问题。