ホームページ >Java >&#&チュートリアル >アクセシビリティチェックにもかかわらず、file.delete() が false を返すのはなぜですか?
誤ったファイル削除: file.delete() アクセシビリティ チェックにもかかわらず False を返す
file.exists() でファイルの存在とアクセシビリティを確認したにもかかわらず、file.canRead()、file.canWrite()、および file.canExecute() は、file.delete() を使用してファイルを削除しようとすると、永続的に false を返します。これにより、削除プロセスでの潜在的なエラーに関する懸念が生じます。問題の調査
コンテンツをファイルに書き込むには、FileOutputStream が使用され、その後ストリームがフラッシュされて閉じられます。 。検査の結果、4 つのアクセシビリティ チェックすべてで肯定的な結果が得られました。ただし、file.delete() は false を返し続けます。考えられるエラー
指定されたコード スニペットには、削除を試行する前にファイル ストリームを閉じるという重要な手順が欠けています。この省略により、ファイル システムがメタデータを更新できなくなり、file.delete() が失敗する可能性があります。解決策
この問題を解決するには、ファイル ストリームがfile.delete() を呼び出す前に適切に閉じてください。以下のコードは必要な変更を実装しています:<code class="java">private void writeContent(File file, String fileContent) { FileOutputStream to; try { to = new FileOutputStream(file); to.write(fileContent.getBytes()); to.flush(); to.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { to.close(); // Close the file stream before deletion } catch (IOException e) { // Exception handling for closing the stream } } }</code>finally ブロックでファイル ストリームを明示的に閉じることにより、ファイルのメタデータが正しく更新され、file.delete() を介してファイルを正常に削除できるようになります。
以上がアクセシビリティチェックにもかかわらず、file.delete() が false を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。