DirectoryInfo.Delete DirectoryInfo.Delete DirectoryInfo.Delete DirectoryInfo.Delete Method

Definition

Löscht ein DirectoryInfo und dessen Inhalt aus einem Pfad.Deletes a DirectoryInfo and its contents from a path.

Überlädt

Delete() Delete() Delete() Delete()

Löscht dieses DirectoryInfo, wenn es leer ist.Deletes this DirectoryInfo if it is empty.

Delete(Boolean) Delete(Boolean) Delete(Boolean) Delete(Boolean)

Löscht diese Instanz von DirectoryInfo und gibt an, ob Unterverzeichnisse und Dateien gelöscht werden sollen.Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files.

Delete() Delete() Delete() Delete()

Löscht dieses DirectoryInfo, wenn es leer ist.Deletes this DirectoryInfo if it is empty.

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.The directory contains a read-only file.

Das von diesem DirectoryInfo-Objekt beschriebene Verzeichnis ist nicht vorhanden, oder es konnte nicht gefunden werden.The directory described by this DirectoryInfo object does not exist or could not be found.

Das Verzeichnis ist nicht leer.The directory is not empty.

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

- oder --or- Für das Verzeichnis ist ein geöffnetes Handle vorhanden, und das Betriebssystem ist Windows XP oder früher.There is an open handle on the directory, and the operating system is Windows XP or earlier. Dieses geöffnete Handle kann aus der Auflistung von Verzeichnissen entstanden sein.This open handle can result from enumerating directories. Weitere Informationen finden Sie unter Vorgehensweise: Auflisten von Verzeichnissen und Dateien.For more information, see How to: Enumerate Directories and Files.

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

Beispiele

Im folgenden Beispiel wird eine Ausnahme ausgelöst, wenn Sie versuchen, ein Verzeichnis zu löschen, das nicht leer ist.The following example throws an exception if you attempt to delete a directory that is not empty.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di1 = gcnew 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." );
   }

}

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 {}
    }
}
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 der allgemeinen e/a-Aufgaben finden Sie unter Allgemeine e/a-Aufgaben.For a list of common I/O tasks, see Common I/O Tasks.

Sicherheit

FileIOPermission
zum Schreiben von Verzeichnissen.for writing directories. Zugehörige Enumeration:WriteAssociated enumeration: Write

Siehe auch

Delete(Boolean) Delete(Boolean) Delete(Boolean) Delete(Boolean)

Löscht diese Instanz von DirectoryInfo und gibt an, ob Unterverzeichnisse und Dateien gelöscht werden sollen.Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files.

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

Parameter

recursive
Boolean Boolean Boolean Boolean

true, um dieses Verzeichnis, seine Unterverzeichnisse und alle Dateien zu löschen, andernfalls false.true to delete this directory, its subdirectories, and all files; otherwise, false.

Ausnahmen

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

Das von diesem DirectoryInfo-Objekt beschriebene Verzeichnis ist nicht vorhanden, oder es konnte nicht gefunden werden.The directory described by this DirectoryInfo object does not exist or could not be found.

Das Verzeichnis ist schreibgeschützt.The directory is read-only.

- oder --or- Das Verzeichnis enthält mindestens eine Datei oder ein Unterverzeichnis, und recursive ist false.The directory contains one or more files or subdirectories and recursive is false.

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

- oder --or- Für das Verzeichnis oder eine der Dateien darin ist ein geöffnetes Handle vorhanden, und das Betriebssystem ist Windows XP oder früher.There is an open handle on the directory or on one of its files, and the operating system is Windows XP or earlier. Dieses geöffnete Handle kann vom Auflisten von Verzeichnissen und Dateien stammen.This open handle can result from enumerating directories and files. Weitere Informationen finden Sie unter Vorgehensweise: Auflisten von Verzeichnissen und Dateien.For more information, see How to: Enumerate Directories and Files.

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

Beispiele

Im folgenden Beispiel wird das Löschen eines Verzeichnisses veranschaulicht.The following example demonstrates deleting a directory. Da das Verzeichnis entfernt wird, kommentieren Sie zunächst die Delete Zeile aus, um zu testen, ob das Verzeichnis vorhanden ist.Because the directory is removed, first comment out the Delete line to test that the directory exists. Entfernen Sie dann die Auskommentierung der Codezeile, um zu testen, ob das Verzeichnis erfolgreich entfernt wurde.Then uncomment the same line of code to test that the directory was removed successfully.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Make a reference to a directory.
   DirectoryInfo^ di = gcnew 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 );
}

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 == false)
            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);
    }
}
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 'Main
End Class 'DeleteTest

Hinweise

Wenn keine Dateien oder Unterverzeichnisse DirectoryInfo recursive falseenthält, löscht diese Methode das, auch wenn ist. DirectoryInfoIf the DirectoryInfo has no files or subdirectories, this method deletes the DirectoryInfo even if recursive is false. Der Versuch, einen DirectoryInfo zu löschen, der nicht recursive leer ist, IOExceptionwenn von ausgelöst wird false .Attempting to delete a DirectoryInfo that is not empty when recursive is false throws an IOException.

Eine Liste der allgemeinen e/a-Aufgaben finden Sie unter Allgemeine e/a-Aufgaben.For a list of common I/O tasks, see Common I/O Tasks.

Sicherheit

FileIOPermissionAccess
Das Schreib Flag ist erforderlich, damit die DirectoryInfo Schreib Berechtigung für die Unterverzeichnisse und gelöscht werden muss.Write flag required for write permission to the DirectoryInfo and subdirectories to be deleted.

Siehe auch

Gilt für: