Directory.Delete Méthode

Définition

Supprime un répertoire spécifié et éventuellement tous les sous-répertoires.

Surcharges

Nom Description
Delete(String)

Supprime un répertoire vide d’un chemin d’accès spécifié.

Delete(String, Boolean)

Supprime le répertoire spécifié et, s’il est indiqué, tous les sous-répertoires et fichiers du répertoire.

Delete(String)

Supprime un répertoire vide d’un chemin d’accès spécifié.

public:
 static void Delete(System::String ^ path);
public static void Delete(string path);
static member Delete : string -> unit
Public Shared Sub Delete (path As String)

Paramètres

path
String

Nom du répertoire vide à supprimer. Ce répertoire doit être accessible en écriture et vide.

Exceptions

Un fichier portant le même nom et le même emplacement spécifiés par path existe.

-ou-

Le répertoire est le répertoire de travail actuel de l’application.

-ou-

Le répertoire spécifié par path n’est pas vide.

-ou-

Le répertoire est en lecture seule ou contient un fichier en lecture seule.

-ou-

Le répertoire est utilisé par un autre processus.

L’appelant n’a pas l’autorisation requise.

.NET Framework et les versions .NET Core antérieures à 2.1 : path est une chaîne de longueur nulle, contient uniquement un espace blanc ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher des caractères non valides à l’aide de la méthode GetInvalidPathChars().

path a la valeur null.

Le chemin d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.

path n’existe pas ou est introuvable.

-ou-

Le chemin spécifié n’est pas valide (par exemple, il se trouve sur un lecteur non mappé).

Exemples

L’exemple suivant montre comment créer un répertoire et un sous-répertoire, puis supprimer uniquement le sous-répertoire.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string subPath = @"C:\NewDirectory\NewSubDirectory";

            try
            {
                Directory.CreateDirectory(subPath);
                Directory.Delete(subPath);

                bool directoryExists = Directory.Exists(@"C:\NewDirectory");
                bool subDirectoryExists = Directory.Exists(subPath);

                Console.WriteLine("top-level directory exists: " + directoryExists);
                Console.WriteLine("sub-directory exists: " + subDirectoryExists);
            }
            catch (Exception e)
            {
                Console.WriteLine("The process failed: {0}", e.Message);
            }
        }
    }
}
open System.IO

let subPath = @"C:\NewDirectory\NewSubDirectory"

try
    Directory.CreateDirectory subPath |> ignore
    Directory.Delete subPath

    let directoryExists = Directory.Exists @"C:\NewDirectory"
    let subDirectoryExists = Directory.Exists subPath

    printfn $"top-level directory exists: {directoryExists}"
    printfn $"sub-directory exists: {subDirectoryExists}"
with e ->
    printfn $"The process failed: {e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim subPath = "C:\NewDirectory\NewSubDirectory"

        Try
            Directory.CreateDirectory(subPath)
            Directory.Delete(subPath)

            Dim directoryExists = Directory.Exists("C:\NewDirectory")
            Dim subDirectoryExists = Directory.Exists(subPath)

            Console.WriteLine("top-level directory exists: " & directoryExists)
            Console.WriteLine("sub-directory exists: " & subDirectoryExists)

        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.Message)
        End Try
    End Sub

End Module

Remarques

Cette méthode se comporte de façon identique à Delete(String, Boolean) celle false spécifiée pour le deuxième paramètre.

Le path paramètre peut spécifier des informations relatives ou absolues sur le chemin d’accès. Les informations relatives au chemin d’accès sont interprétées comme relatives au répertoire de travail actuel. Pour obtenir le répertoire de travail actuel, consultez GetCurrentDirectory.

Les espaces de fin sont supprimés de la fin du path paramètre avant de supprimer le répertoire.

Cette méthode lève un IOException répertoire si le répertoire spécifié dans le path paramètre contient des fichiers ou des sous-répertoires.

La sensibilité de la casse du path paramètre correspond à celle du système de fichiers sur lequel le code est en cours d’exécution. Par exemple, il ne respecte pas la casse sur NTFS (le système de fichiers Windows par défaut) et respecte la casse sur les systèmes de fichiers Linux.

Dans certains cas, si le répertoire spécifié est ouvert dans l’Explorateur de fichiers, la Delete méthode peut ne pas être en mesure de la supprimer.

Voir aussi

S’applique à

Delete(String, Boolean)

Supprime le répertoire spécifié et, s’il est indiqué, tous les sous-répertoires et fichiers du répertoire.

public:
 static void Delete(System::String ^ path, bool recursive);
public static void Delete(string path, bool recursive);
static member Delete : string * bool -> unit
Public Shared Sub Delete (path As String, recursive As Boolean)

Paramètres

path
String

Nom du répertoire à supprimer.

recursive
Boolean

true pour supprimer des répertoires, des sous-répertoires et des fichiers dans path; sinon, false.

Exceptions

Un fichier portant le même nom et le même emplacement spécifiés par path existe.

-ou-

Le répertoire spécifié par path est en lecture seule ou recursive n’est falsepath pas un répertoire vide.

-ou-

Le répertoire est le répertoire de travail actuel de l’application.

-ou-

Le répertoire contient un fichier en lecture seule.

-ou-

Le répertoire est utilisé par un autre processus.

L’appelant n’a pas l’autorisation requise.

.NET Framework et les versions .NET Core antérieures à 2.1 : path est une chaîne de longueur nulle, contient uniquement un espace blanc ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher des caractères non valides à l’aide de la méthode GetInvalidPathChars().

path a la valeur null.

Le chemin d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.

path n’existe pas ou est introuvable.

-ou-

Le chemin spécifié n’est pas valide (par exemple, il se trouve sur un lecteur non mappé).

Exemples

L’exemple suivant montre comment créer un répertoire, un sous-répertoire et un fichier dans le sous-répertoire, puis supprimer de manière récursive tous les nouveaux éléments.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string topPath = @"C:\NewDirectory";
            string subPath = @"C:\NewDirectory\NewSubDirectory";

            try
            {
                Directory.CreateDirectory(subPath);

                using (StreamWriter writer = File.CreateText(subPath + @"\example.txt"))
                {
                    writer.WriteLine("content added");
                }

                Directory.Delete(topPath, true);

                bool directoryExists = Directory.Exists(topPath);

                Console.WriteLine("top-level directory exists: " + directoryExists);
            }
            catch (Exception e)
            {
                Console.WriteLine("The process failed: {0}", e.Message);
            }
        }
    }
}
open System.IO

let topPath = @"C:\NewDirectory"
let subPath = @"C:\NewDirectory\NewSubDirectory"

try
    Directory.CreateDirectory(subPath) |> ignore

    do
        use writer = File.CreateText(subPath + @"\example.txt")
        writer.WriteLine "content added"

    Directory.Delete(topPath, true)

    let directoryExists = Directory.Exists topPath

    printfn $"top-level directory exists: {directoryExists}"
    
with e ->
    printfn $"The process failed: {e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim topPath = "C:\NewDirectory"
        Dim subPath = "C:\NewDirectory\NewSubDirectory"

        Try
            Directory.CreateDirectory(subPath)

            Using writer As StreamWriter = File.CreateText(subPath + "\example.txt")
                writer.WriteLine("content added")
            End Using

            Directory.Delete(topPath, True)

            Dim directoryExists = Directory.Exists(topPath)

            Console.WriteLine("top-level directory exists: " & directoryExists)
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.Message)
        End Try
    End Sub

End Module

Remarques

Le path paramètre peut spécifier des informations relatives ou absolues sur le chemin d’accès. Les informations relatives au chemin d’accès sont interprétées comme relatives au répertoire de travail actuel. Pour obtenir le répertoire de travail actuel, consultez GetCurrentDirectory.

Les espaces de fin sont supprimés de la fin du path paramètre avant de supprimer le répertoire.

La sensibilité de la casse du path paramètre correspond à celle du système de fichiers sur lequel le code est en cours d’exécution. Par exemple, il ne respecte pas la casse sur NTFS (le système de fichiers Windows par défaut) et respecte la casse sur les systèmes de fichiers Linux.

Si le recursive paramètre est true, l’utilisateur doit avoir l’autorisation d’écriture pour le répertoire actif ainsi que pour tous les sous-répertoires.

Le comportement de cette méthode diffère légèrement lors de la suppression d’un répertoire qui contient un point d’analyse, tel qu’un lien symbolique ou un point de montage. Si le point d’analyse est un répertoire, tel qu’un point de montage, il n’est pas monté et le point de montage est supprimé. Cette méthode ne récurse pas le point d’analyse. Si le point d’analyse est un lien symbolique vers un fichier, le point d’analyse est supprimé et non la cible du lien symbolique.

Dans certains cas, si le répertoire spécifié est ouvert dans l’Explorateur de fichiers, la Delete méthode peut ne pas être en mesure de la supprimer.

Voir aussi

S’applique à