Directory.Delete Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Löscht ein angegebenes Verzeichnis und optional alle Unterverzeichnisse.
Überlädt
Delete(String) |
Löscht ein leeres Verzeichnis aus einem angegebenen Pfad. |
Delete(String, Boolean) |
Löscht das angegebene Verzeichnis und, sofern angegeben, alle Unterverzeichnisse und Dateien im Verzeichnis. |
Delete(String)
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
Löscht ein leeres Verzeichnis aus einem angegebenen Pfad.
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
Der Name des zu entfernenden leeren Verzeichnisses. Dieses Verzeichnis muss schreibbar und leer sein.
Ausnahmen
Es gibt eine Datei, die denselben Namen und Speicherort hat wie in path
angegeben.
- oder -
Das Verzeichnis ist das aktuelle Arbeitsverzeichnis der Anwendung.
- oder -
Das durch path
angegebene Verzeichnis ist nicht leer.
- oder -
Das Verzeichnis ist schreibgeschützt oder enthält eine schreibgeschützte Datei.
- oder -
Das Verzeichnis wird von einem anderen Prozess verwendet.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.
path
ist null
.
Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.
path
ist nicht vorhanden oder wurde nicht gefunden.
- oder -
Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Beispiele
Das folgende Beispiel zeigt, wie Sie ein neues Verzeichnis und ein neues Unterverzeichnis erstellen und dann nur das Unterverzeichnis löschen.
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
Hinweise
Diese Methode verhält sich identisch mit dem Delete(String, Boolean)false
für den zweiten Parameter angegebenen.
Der path
Parameter kann relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Nachfolgende Leerzeichen werden am Ende des path
Parameters entfernt, bevor das Verzeichnis gelöscht wird.
Diese Methode löst eine aus IOException , wenn das im path
-Parameter angegebene Verzeichnis Dateien oder Unterverzeichnisse enthält.
Die Groß-/Kleinschreibung des path
Parameters entspricht der des Dateisystems, in dem der Code ausgeführt wird. Beispielsweise wird bei NTFS (dem standardmäßigen Windows-Dateisystem) die Groß-/Kleinschreibung und bei Linux-Dateisystemen die Groß-/Kleinschreibung nicht beachtet.
Wenn das angegebene Verzeichnis in Explorer geöffnet ist, kann die Delete Methode es in einigen Fällen möglicherweise nicht löschen.
Weitere Informationen
- Datei- und Stream-E/A
- How to: Lesen von Text aus einer Datei
- How to: Schreiben von Text in eine Datei
Gilt für:
Delete(String, Boolean)
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
Löscht das angegebene Verzeichnis und, sofern angegeben, alle Unterverzeichnisse und Dateien im Verzeichnis.
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
Der Name des zu entfernenden Verzeichnisses.
- recursive
- Boolean
true
zum Entfernen von Verzeichnissen, Unterverzeichnissen und Dateien in path
, andernfalls false
.
Ausnahmen
Es gibt eine Datei, die denselben Namen und Speicherort hat wie in path
angegeben.
- oder -
Das von path
angegebene Verzeichnis ist schreibgeschützt, oder recursive
ist false
, und path
ist kein leeres Verzeichnis.
- oder -
Das Verzeichnis ist das aktuelle Arbeitsverzeichnis der Anwendung.
- oder -
Das Verzeichnis enthält eine schreibgeschützte Datei.
- oder -
Das Verzeichnis wird von einem anderen Prozess verwendet.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.
path
ist null
.
Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.
path
ist nicht vorhanden oder wurde nicht gefunden.
- oder -
Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Beispiele
Das folgende Beispiel zeigt, wie Sie ein neues Verzeichnis, ein neues Unterverzeichnis und eine neue Datei im Unterverzeichnis erstellen und dann alle neuen Elemente rekursiv löschen.
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
Hinweise
Der path
Parameter kann relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Nachfolgende Leerzeichen werden am Ende des path
Parameters entfernt, bevor das Verzeichnis gelöscht wird.
Die Groß-/Kleinschreibung des path
Parameters entspricht der des Dateisystems, in dem der Code ausgeführt wird. Beispielsweise wird bei NTFS (dem standardmäßigen Windows-Dateisystem) die Groß-/Kleinschreibung und bei Linux-Dateisystemen die Groß-/Kleinschreibung nicht beachtet.
Wenn der recursive
Parameter lautet true
, muss der Benutzer sowohl für das aktuelle Verzeichnis als auch für alle Unterverzeichnisse über Schreibberechtigungen verfügen.
Das Verhalten dieser Methode unterscheidet sich geringfügig beim Löschen eines Verzeichnisses, das einen Analysepunkt enthält, z. B. einen symbolischen Link oder einen Bereitstellungspunkt. Wenn der Analysepunkt ein Verzeichnis ist, z. B. ein Bereitstellungspunkt, wird die Bereitstellung aufgehoben, und der Bereitstellungspunkt wird gelöscht. Diese Methode wird nicht durch den Analysepunkt rekursiert. Wenn der Analysepunkt ein symbolischer Link zu einer Datei ist, wird der Analysepunkt gelöscht und nicht das Ziel der symbolischen Verknüpfung.
Wenn das angegebene Verzeichnis in Explorer geöffnet ist, kann die Delete Methode es in einigen Fällen möglicherweise nicht löschen.
Weitere Informationen
- Datei- und Stream-E/A
- How to: Lesen von Text aus einer Datei
- How to: Schreiben von Text in eine Datei