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

我从没想过会发生这种情况,但是遇到了我的第一个Java错误:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5003595

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

所以我的问题是,这种检查文件是否存在的方法是否可以替代?如果可能的话,我希望它与操作系统无关。

编辑:我找到了一种解决方法。如果调用“ ls $

filedir”,则NFS会刷新给Java造成麻烦的所有缓存/元数据,并且File.exists()返回正确的值。当然,这并不完全理想,因为它会损害便携性,但是有一些方法可以解决该问题。

谢谢-本

回答:

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

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

以上是 Java中File.exists()的替代方法 的全部内容, 来源链接: utcz.com/qa/433598.html

回到顶部