背後にロジックが見つからないようなバグに遭遇しました。次のように作成されたこのFileオブジェクトがあります。
File file = new File("utilities/data/someTextFile.txt");
次にを実行file.exists()すると、戻りますfalse(!?)。ファイルが見つからない場合は、ファイルにログf.getAbsolutePath()を記録しています。パスを見ると大丈夫そうです。Windowsの[実行]ウィンドウに完全なパスをコピーして貼り付けると、ファイルが正常に開きます。
ファイルは常に存在し、アプリケーションの実行中に削除も変更もされません。ローカルマシンにあります。
これは特定の状況でのみ発生するようです。障害はいつでも再現できますが、ファイルオブジェクトのパスは、障害を再現するために行ったアクションによって変更されていないと確信しています。
file.exists()falseを返す原因は何ですか?これは、アクセス許可やファイルロックなどと関係がありますか?