Rumah > pembangunan bahagian belakang > C++ > Mengapa Directory.Delete(path, true) Gagal, dan Bagaimana Saya Boleh Padamkan Direktori secara Rekursif dalam .NET 3.5?

Mengapa Directory.Delete(path, true) Gagal, dan Bagaimana Saya Boleh Padamkan Direktori secara Rekursif dalam .NET 3.5?

Susan Sarandon
Lepaskan: 2025-01-13 17:17:43
asal
986 orang telah melayarinya

Why Does Directory.Delete(path, true) Fail, and How Can I Recursively Delete a Directory in .NET 3.5?

Menyelesaikan Masalah Pemadaman Direktori Rekursif dalam .NET 3.5

Ralat biasa "System.IO.IOException: Direktori tidak kosong" apabila menggunakan Directory.Delete(path, true) dalam .NET 3.5 adalah mengelirukan. Parameter true menunjukkan pemadaman rekursif, tetapi ia tidak mengendalikan fail secara automatik dalam direktori.

Untuk memadamkan direktori dan kandungannya secara rekursif dengan pasti, fungsi tersuai diperlukan:

<code class="language-csharp">public static void DeleteDirectoryRecursively(string targetDir)
{
    string[] files = Directory.GetFiles(targetDir);
    string[] dirs = Directory.GetDirectories(targetDir);

    foreach (string file in files)
    {
        File.SetAttributes(file, FileAttributes.Normal); // Remove read-only attributes
        File.Delete(file);
    }

    foreach (string dir in dirs)
    {
        DeleteDirectoryRecursively(dir); // Recursive call for subdirectories
    }

    Directory.Delete(targetDir, false); // Delete the directory itself
}</code>
Salin selepas log masuk

Kaedah yang dipertingkatkan ini mula-mula mengalih keluar sebarang atribut baca sahaja daripada fail, kemudian memadam setiap fail secara berasingan. Ia secara rekursif memanggil dirinya sendiri untuk mengendalikan subdirektori bersarang sebelum akhirnya memadamkan direktori sasaran. Ini memastikan penyingkiran lengkap dan bebas ralat. Melaksanakan sekatan akses disyorkan untuk mengelakkan pemadaman folder yang dilindungi sistem secara tidak sengaja.

Atas ialah kandungan terperinci Mengapa Directory.Delete(path, true) Gagal, dan Bagaimana Saya Boleh Padamkan Direktori secara Rekursif dalam .NET 3.5?. 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