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
Lepaskan: 2024-11-04 03:16:02
asal
687 orang telah melayarinya

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>
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan