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

sumber:php.cn
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