DirectoryInfo.Delete Methode

Definition

Löscht einen DirectoryInfo und dessen Inhalt aus einem Pfad.

Überlädt

Name Beschreibung
Delete()

Löscht dies DirectoryInfo , wenn sie leer ist.

Delete(Boolean)

Löscht diese Instanz eines DirectoryInfo, der angibt, ob Unterverzeichnisse und Dateien gelöscht werden sollen.

Delete()

Löscht dies DirectoryInfo , wenn sie leer ist.

public:
 override void Delete();
public override void Delete();
override this.Delete : unit -> unit
Public Overrides Sub Delete ()

Ausnahmen

Das Verzeichnis enthält eine schreibgeschützte Datei.

Das durch dieses DirectoryInfo Objekt beschriebene Verzeichnis ist nicht vorhanden oder konnte nicht gefunden werden.

Das Verzeichnis ist nicht leer.

-oder-

Das Verzeichnis ist das aktuelle Arbeitsverzeichnis der Anwendung.

-oder-

Es gibt ein geöffnetes Handle im Verzeichnis, und das Betriebssystem ist Windows XP oder früheren Versionen. Dieses geöffnete Handle kann aus dem Aufzählen von Verzeichnissen resultieren. Weitere Informationen finden Sie unter How to: Enumerate Verzeichnisse und Dateien.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Beispiele

Im folgenden Beispiel wird eine Ausnahme ausgelöst, wenn Sie versuchen, ein nicht leeres Verzeichnis zu löschen.

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di1 = new DirectoryInfo(@"c:\MyDir");

        try
        {
            // Create the directories.
            di1.Create();
            di1.CreateSubdirectory("temp");

            //This operation will not be allowed because there are subdirectories.
            Console.WriteLine("I am about to attempt to delete {0}", di1.Name);
            di1.Delete();
            Console.WriteLine("The Delete operation was successful, which was unexpected.");
        }
        catch (Exception)
        {
            Console.WriteLine("The Delete operation failed as expected.");
        }
        finally {}
    }
}
open System.IO

// Specify the directories you want to manipulate.
let di1 = DirectoryInfo @"c:\MyDir"

try
    // Create the directories.
    di1.Create()
    di1.CreateSubdirectory "temp" |> ignore

    //This operation will not be allowed because there are subdirectories.
    printfn $"I am about to attempt to delete {di1.Name}"
    di1.Delete()
    printfn "The Delete operation was successful, which was unexpected."
with _ ->
    printfn "The Delete operation failed as expected."
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di1 As DirectoryInfo = New DirectoryInfo("c:\MyDir")

        Try
            ' Create the directories.
            di1.Create()
            di1.CreateSubdirectory("temp")

            'This operation will not be allowed because there are subdirectories.
            Console.WriteLine("I am about to attempt to delete {0}", di1.Name)
            di1.Delete()
            Console.WriteLine("The Delete operation was successful, which was unexpected.")

        Catch
            Console.WriteLine("The Delete operation was unsuccessful, as expected.")
        End Try
    End Sub
End Class

Hinweise

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Delete(Boolean)

Löscht diese Instanz eines DirectoryInfo, der angibt, ob Unterverzeichnisse und Dateien gelöscht werden sollen.

public:
 void Delete(bool recursive);
public void Delete(bool recursive);
override this.Delete : bool -> unit
Public Sub Delete (recursive As Boolean)

Parameter

recursive
Boolean

trueum dieses Verzeichnis, seine Unterverzeichnisse und alle Dateien zu löschen; andernfalls . false

Ausnahmen

Das Verzeichnis enthält eine schreibgeschützte Datei.

Das durch dieses DirectoryInfo Objekt beschriebene Verzeichnis ist nicht vorhanden oder konnte nicht gefunden werden.

Das Verzeichnis ist schreibgeschützt.

-oder-

Das Verzeichnis enthält eine oder mehrere Dateien oder Unterverzeichnisse und recursive ist false.

-oder-

Das Verzeichnis ist das aktuelle Arbeitsverzeichnis der Anwendung.

-oder-

Es gibt ein geöffnetes Handle im Verzeichnis oder in einer seiner Dateien, und das Betriebssystem ist Windows XP oder früher. Dieses geöffnete Handle kann aus dem Aufzählen von Verzeichnissen und Dateien resultieren. Weitere Informationen finden Sie unter How to: Enumerate Verzeichnisse und Dateien.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Beispiele

Im folgenden Beispiel wird das Löschen eines Verzeichnisses veranschaulicht. Da das Verzeichnis entfernt wird, kommentieren Sie zunächst die Delete Zeile aus, um zu testen, dass das Verzeichnis vorhanden ist. Entfernen Sie dann die Auskommentierung derselben Codezeile, um zu testen, dass das Verzeichnis erfolgreich entfernt wurde.

using System;
using System.IO;

public class DeleteTest
{
    public static void Main()
    {

        // Make a reference to a directory.
        DirectoryInfo di = new DirectoryInfo("TempDir");

        // Create the directory only if it does not already exist.
        if (!di.Exists)
            di.Create();

        // Create a subdirectory in the directory just created.
        DirectoryInfo dis = di.CreateSubdirectory("SubDir");

        // Process that directory as required.
        // ...

        // Delete the subdirectory. The true indicates that if subdirectories
        // or files are in this directory, they are to be deleted as well.
        dis.Delete(true);

        // Delete the directory.
        di.Delete(true);
    }
}
open System.IO

// Make a reference to a directory.
let di = DirectoryInfo "TempDir"

// Create the directory only if it does not already exist.
if not di.Exists then
    di.Create()

// Create a subdirectory in the directory just created.
let dis = di.CreateSubdirectory "SubDir"

// Process that directory as required.
// ...

// Delete the subdirectory. The true indicates that if subdirectories
// or files are in this directory, they are to be deleted as well.
dis.Delete true

// Delete the directory.
di.Delete true
Imports System.IO

Public Class DeleteTest

    Public Shared Sub Main()
        ' Make a reference to a directory.
        Dim di As New DirectoryInfo("TempDir")

        ' Create the directory only if it does not already exist.
        If di.Exists = False Then
            di.Create()
        End If

        Dim dis As DirectoryInfo = di.CreateSubdirectory("SubDir")
        ' Create a subdirectory in the directory just created.

        ' Process that directory as required.
        ' ...

        ' Delete the subdirectory. The true indicates that if subdirectories
        ' or files are in this directory, they are to be deleted as well.
        dis.Delete(True)

        ' Delete the directory.
        di.Delete(True)
    End Sub
End Class

Hinweise

Wenn die DirectoryInfo Datei oder Unterverzeichnisse nicht vorhanden sind, wird mit dieser Methode auch dann gelöscht DirectoryInfo , wenn recursive dies der Fall ist false. Beim Versuch, ein Element DirectoryInfo zu löschen, das nicht leer ist, wenn recursive ein IOExceptionFehler ausgelöst wirdfalse.

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für: