我从来没想到会发生在我身上,但我遇到了我在Java中的第一个bug。
所以我的问题是,有没有其他方法来检查文件是否存在?如果可能的话,我希望保持操作系统无关。
编辑:我找到了一个解决方法。如果你调用
https://bugs.java.com/bugdatabase/view_bug?bug_id=5003595
我基本上和描述中的bug(在Linux上的NFS)处于完全相同的情况,我发现File.exists()
并没有立即返回正确的值。所以我的问题是,有没有其他方法来检查文件是否存在?如果可能的话,我希望保持操作系统无关。
编辑:我找到了一个解决方法。如果你调用
ls $filedir
,NFS会刷新给Java带来麻烦的缓存/元数据,然后File.exists()
会返回正确的值。当然,这并不完全理想,因为它会影响可移植性,但是有办法解决这个问题。