私はバグに遭遇しました。私はこのように作成され、このFileオブジェクトを、持っている:(!?)ファイルが存在すると、File.exists()はfalseを返します。
File file = new File("utilities/data/someTextFile.txt");
私はその後、file.exists()
を行い、それがfalse
を返します。ファイルが見つからない場合は、f.getAbsolutePath()
をファイルに記録しています。私が道を見ると、それはOKのようです。完全なパスをWindowsの「実行」ウィンドウにコピー&ペーストすると、ファイルが正常に開きます。
ファイルは常に存在し、アプリケーションの実行中にファイルが削除されたり変更されたりすることはありません。ローカルマシンにあります。
これは特定の状況でのみ発生するようです。私はいつでもフォルトを再現することができますが、フォールトを再現するためにファイルオブジェクトのパスが変更されていないことを確信しています。
file.exists()
がfalseを返す原因は何ですか?これはパーミッションやファイルロックなどと関係がありますか?
exist()がfalseを返しても、ファイルから読み込むことは可能ですか? –
はい、exist()がfalseを返してもファイルから読み込むことができます。 – atsjoo
別のJVMを試しましたか?別のマシン?異なるオペレーティングシステム? –