Rumah >Java >javaTutorial >Mengapa Adakah `File.delete()` Kembali Palsu Walaupun Fail Wujud dan Mempunyai Kebenaran?

Mengapa Adakah `File.delete()` Kembali Palsu Walaupun Fail Wujud dan Mempunyai Kebenaran?

Susan Sarandon
Susan Sarandonasal
2024-11-04 03:16:02653semak imbas

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

File.delete() Mengembalikan Palsu Walaupun Fail Wujud dan Kebenaran

S: Saya menghadapi masalah di mana file.delete() kaedah mengembalikan palsu, walaupun file.exists(), file.canRead(), file.canWrite(), dan file.canExecute() semuanya kembali benar. Apakah yang boleh menyebabkan perkara ini?

J: Walaupun memenuhi kewujudan fail dan semakan kebenaran, anda mungkin masih menghadapi isu ini disebabkan pepijat di Java. Untuk mengatasinya, adalah penting untuk memasukkan langkah berikut:

  1. Pastikan penutupan strim: Dalam kod anda, anda telah memadam dan menutup strim output selepas menulis kandungan. Walau bagaimanapun, anda juga harus mengesahkan bahawa aliran input ditutup, jika berkenaan.
  2. Invoke System.gc(): Langkah penting terakhir ialah memanggil System.gc(), yang membebaskan sebarang sumber sistem yang dikaitkan dengan fail itu. Ini adalah perlu untuk menyelesaikan proses pemadaman dengan jayanya.

Mengintegrasikan langkah-langkah ini ke dalam kod anda seharusnya menyelesaikan isu:

<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>

Dengan mengikuti cadangan ini, anda boleh mengatasi isu ini dan pastikan proses pemadaman fail berjaya diselesaikan.

Atas ialah kandungan terperinci Mengapa Adakah `File.delete()` Kembali Palsu Walaupun Fail Wujud dan Mempunyai Kebenaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn