私はそれが私に起こるとは思っていませんでしたが、Javaで最初のバグに遭遇しました:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5003595
私はバグ(Linux上のNFS)で説明されているのとほぼ同じ状況にあり、それFile.exists()
が正しい値を返さないことがわかります(少なくともすぐには)。
だから私の質問は、ファイルが存在するかどうかをチェックするこの方法に代わるものはありますか?可能であれば、OSに依存しないようにしたいです。
編集:回避策を見つけました。を呼び出すとls $filedir
、NFSはJavaの問題を引き起こしているキャッシュ/メタデータを更新しFile.exists()
、正しい値を返します。確かに、これは移植性を損なうため、完全に理想的ではありませんが、その問題に対処する方法はあります。