Maison > développement back-end > C++ > Pourquoi Directory.Delete(path, true) échoue-t-il et comment puis-je supprimer de manière récursive un répertoire dans .NET 3.5 ?

Pourquoi Directory.Delete(path, true) échoue-t-il et comment puis-je supprimer de manière récursive un répertoire dans .NET 3.5 ?

Susan Sarandon
Libérer: 2025-01-13 17:17:43
original
926 Les gens l'ont consulté

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

Dépannage de la suppression récursive de répertoires dans .NET 3.5

L'erreur courante « System.IO.IOException : Le répertoire n'est pas vide » lors de l'utilisation de Directory.Delete(path, true) dans .NET 3.5 est trompeuse. Le paramètre true indique une suppression récursive, mais il ne gère pas automatiquement les fichiers dans le répertoire.

Pour supprimer de manière fiable un répertoire et son contenu de manière récursive, une fonction personnalisée est nécessaire :

<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>
Copier après la connexion

Cette méthode améliorée supprime d'abord tous les attributs en lecture seule des fichiers, puis supprime chaque fichier individuellement. Il s'appelle récursivement pour gérer les sous-répertoires imbriqués avant de finalement supprimer le répertoire cible. Cela garantit une suppression complète et sans erreur. Il est recommandé de mettre en œuvre des restrictions d'accès pour éviter la suppression accidentelle des dossiers protégés par le système.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal