Directory.Delete Directory.Delete Directory.Delete Directory.Delete Method

Definition

Löscht ein angegebenes Verzeichnis und optional alle Unterverzeichnisse.Deletes a specified directory, and optionally any subdirectories.

Überlädt

Delete(String) Delete(String) Delete(String) Delete(String)

Löscht ein leeres Verzeichnis aus einem angegebenen Pfad.Deletes an empty directory from a specified path.

Delete(String, Boolean) Delete(String, Boolean) Delete(String, Boolean) Delete(String, Boolean)

Löscht das angegebene Verzeichnis und, sofern angegeben, alle Unterverzeichnisse und Dateien im Verzeichnis.Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

Delete(String) Delete(String) Delete(String) Delete(String)

Löscht ein leeres Verzeichnis aus einem angegebenen Pfad.Deletes an empty directory from a specified path.

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)

Parameter

path
String String String String

Der Name des zu entfernenden leeren Verzeichnisses.The name of the empty directory to remove. Dieses Verzeichnis muss schreibbar und leer sein.This directory must be writable and empty.

Ausnahmen

Es gibt eine Datei, die denselben Namen und Speicherort hat wie in path angegeben.A file with the same name and location specified by path exists.

- oder - -or- Das Verzeichnis ist das aktuelle Arbeitsverzeichnis der Anwendung.The directory is the application's current working directory.

- oder - -or- Das durch path angegebene Verzeichnis ist nicht leer.The directory specified by path is not empty.

- oder - -or- Das Verzeichnis ist schreibgeschützt oder enthält eine schreibgeschützte Datei.The directory is read-only or contains a read-only file.

- oder - -or- Das Verzeichnis wird von einem anderen Prozess verwendet.The directory is being used by another process.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.path is a zero-length string, contains only white space, or contains one or more invalid characters. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.You can query for invalid characters by using the GetInvalidPathChars() method.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.The specified path, file name, or both exceed the system-defined maximum length.

path ist nicht vorhanden oder wurde nicht gefunden.path does not exist or could not be found.

- oder - -or- Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).The specified path is invalid (for example, it is on an unmapped drive).

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie ein neues Verzeichnis und ein neues Unterverzeichnis erstellen und dann nur das Unterverzeichnis löschen.The following example shows how to create a new directory and subdirectory, and then delete only the subdirectory.

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);
            }
        }
    }
}
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

Hinweise

Diese Methode verhält sich identisch mit Delete(String, Boolean) , false wobei für den zweiten Parameter angegeben wird.This method behaves identically to Delete(String, Boolean) with false specified for the second parameter.

Der path -Parameter kann relative oder absolute Pfadinformationen angeben.The path parameter may specify relative or absolute path information. Relative Pfadinformationen werden als relativ zum aktuellen Arbeitsverzeichnis interpretiert.Relative path information is interpreted as relative to the current working directory. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden GetCurrentDirectorySie unter.To obtain the current working directory, see GetCurrentDirectory.

Nachfolgende Leerzeichen werden am Ende des path -Parameters vor dem Löschen des Verzeichnisses entfernt.Trailing spaces are removed from the end of the path parameter before deleting the directory.

Diese Methode löst eine IOException path aus, wenn das im-Parameter angegebene Verzeichnis Dateien oder Unterverzeichnisse enthält.This method throws an IOException if the directory specified in the path parameter contains files or subdirectories.

Der path -Parameter berücksichtigt nicht die Groß-/Kleinschreibung.The path parameter is not case-sensitive.

Wenn im Datei-Explorer das angegebene Verzeichnis geöffnet ist, kann es in einigen Fällen Delete nicht von der Methode gelöscht werden.In some cases, if you have the specified directory open in File Explorer, the Delete method may not be able to delete it.

Sicherheit

FileIOPermission
zum Schreiben in das angegebene Verzeichnis.for writing to the specified directory. Zugehörige Enumeration:WriteAssociated enumeration: Write

Siehe auch

Delete(String, Boolean) Delete(String, Boolean) Delete(String, Boolean) Delete(String, Boolean)

Löscht das angegebene Verzeichnis und, sofern angegeben, alle Unterverzeichnisse und Dateien im Verzeichnis.Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

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)

Parameter

path
String String String String

Der Name des zu entfernenden Verzeichnisses.The name of the directory to remove.

recursive
Boolean Boolean Boolean Boolean

true zum Entfernen von Verzeichnissen, Unterverzeichnissen und Dateien in path, andernfalls false.true to remove directories, subdirectories, and files in path; otherwise, false.

Ausnahmen

Es gibt eine Datei, die denselben Namen und Speicherort hat wie in path angegeben.A file with the same name and location specified by path exists.

- oder - -or- Das von path angegebene Verzeichnis ist schreibgeschützt, oder recursive ist false, und path ist kein leeres Verzeichnis.The directory specified by path is read-only, or recursive is false and path is not an empty directory.

- oder - -or- Das Verzeichnis ist das aktuelle Arbeitsverzeichnis der Anwendung.The directory is the application's current working directory.

- oder - -or- Das Verzeichnis enthält eine schreibgeschützte Datei.The directory contains a read-only file.

- oder - -or- Das Verzeichnis wird von einem anderen Prozess verwendet.The directory is being used by another process.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.path is a zero-length string, contains only white space, or contains one or more invalid characters. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.You can query for invalid characters by using the GetInvalidPathChars() method.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.The specified path, file name, or both exceed the system-defined maximum length.

path ist nicht vorhanden oder wurde nicht gefunden.path does not exist or could not be found.

- oder - -or- Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).The specified path is invalid (for example, it is on an unmapped drive).

Beispiele

Im folgenden Beispiel wird gezeigt, wie ein neues Verzeichnis, ein Unterverzeichnis und eine Datei im Unterverzeichnis erstellt und anschließend alle neuen Elemente rekursiv gelöscht werden.The following example shows how to create a new directory, subdirectory, and file in the subdirectory, and then recursively delete all the new items.

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);
            }
        }
    }
}
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

Hinweise

Der path -Parameter kann relative oder absolute Pfadinformationen angeben.The path parameter may specify relative or absolute path information. Relative Pfadinformationen werden als relativ zum aktuellen Arbeitsverzeichnis interpretiert.Relative path information is interpreted as relative to the current working directory. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden GetCurrentDirectorySie unter.To obtain the current working directory, see GetCurrentDirectory.

Nachfolgende Leerzeichen werden am Ende des path -Parameters vor dem Löschen des Verzeichnisses entfernt.Trailing spaces are removed from the end of the path parameter before deleting the directory.

Der path -Parameter berücksichtigt nicht die Groß-/Kleinschreibung.The path parameter is not case-sensitive.

Wenn der recursive -Parameter trueist, muss der Benutzer über die Schreib Berechtigung für das aktuelle Verzeichnis sowie für alle Unterverzeichnisse verfügen.If the recursive parameter is true, the user must have write permission for the current directory as well as for all subdirectories.

Das Verhalten dieser Methode unterscheidet sich geringfügig, wenn ein Verzeichnis gelöscht wird, das einen Analyse Punkt enthält, z. b. eine symbolische Verknüpfung oder einen Einfügepunkt.The behavior of this method differs slightly when deleting a directory that contains a reparse point, such as a symbolic link or a mount point. Wenn der Analyse Punkt ein Verzeichnis ist, z. b. ein Einstellungspunkt, wird die Bereitstellung aufgehoben und der Einstellungspunkt gelöscht.If the reparse point is a directory, such as a mount point, it is unmounted and the mount point is deleted. Diese Methode wird nicht durch den Analyse Punkt rekursiert.This method does not recurse through the reparse point. Wenn der Analyse Punkt ein symbolischer Link zu einer Datei ist, wird der Analyse Punkt und nicht das Ziel der symbolischen Verknüpfung gelöscht.If the reparse point is a symbolic link to a file, the reparse point is deleted and not the target of the symbolic link.

Wenn im Datei-Explorer das angegebene Verzeichnis geöffnet ist, kann es in einigen Fällen Delete nicht von der Methode gelöscht werden.In some cases, if you have the specified directory open in File Explorer, the Delete method may not be able to delete it.

Sicherheit

FileIOPermission
zum Schreiben in das angegebene Verzeichnis.for writing to the specified directory. Zugehörige Enumeration:WriteAssociated enumeration: Write

Siehe auch

Gilt für: