首頁 > Java > java教程 > 為什麼即使檔案存在並且具有權限,「File.delete()」也會傳回 False?

為什麼即使檔案存在並且具有權限,「File.delete()」也會傳回 False?

Susan Sarandon
發布: 2024-11-04 03:16:02
原創
654 人瀏覽過

Why Does `File.delete()` Return False Even When the File Exists and Has Permissions?

儘管檔案存在且有權限,File.delete() 回傳False

問:我遇到了file.delete() 的問題方法傳回false,即使file.exists()、file.canRead()、file.canWrite() 和file.canExecute() 都會回傳true。可能是什麼原因造成的?

答:儘管完成了檔案存在和權限檢查,但由於 Java 中的錯誤,您仍然可能會遇到此問題。為了克服這個問題,納入以下步驟至關重要:

  1. 確保串流關閉:在程式碼中,您在寫入內容後刷新並關閉了輸出流。但是,您還應該驗證輸入流是否已關閉(如果適用)。
  2. 呼叫 System.gc():最後一個關鍵步驟是呼叫 System.gc(),這會釋放與檔案。這是成功完成刪除過程所必需的。

將這些步驟整合到您的程式碼中應該可以解決問題:

<code class="java">public void deleteFile() {
    FileOutputStream to = null;
    FileInputStream in = null;
    try {
        in = new FileInputStream(file);
        to = new FileOutputStream(file);
        to.write(fileContent.getBytes());
        to.flush();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            in.close();
            in = null;
            to.flush();
            to.close();
            to = null;
            System.gc();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // Attempt to delete file
    if (file.delete()) {
        // Delete successful
    } else {
        // Handle unsuccessful deletion
    }
}</code>
登入後複製

透過遵循這些建議,您可以克服此問題並確保檔案刪除過程已成功完成。

以上是為什麼即使檔案存在並且具有權限,「File.delete()」也會傳回 False?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板