Condividi tramite


DirectoryInfo.Delete Metodo

Definizione

Elimina un oggetto DirectoryInfo e il relativo contenuto da un percorso.

Overload

Delete()

Elimina questo oggetto DirectoryInfo se è vuoto.

Delete(Boolean)

Elimina questa istanza di DirectoryInfo, specificando se eliminare le subdirectory e i file.

Delete()

Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs

Elimina questo oggetto DirectoryInfo se è vuoto.

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

Eccezioni

La directory contiene un file di sola lettura.

La directory descritta dall'oggetto DirectoryInfo non esiste o non è possibile trovarla.

La directory non è vuota.

-oppure-

La directory è la directory di lavoro corrente dell'applicazione.

-oppure-

Handle aperto sulla directory e il sistema operativo è Windows XP o versione precedente. Questo handle aperto può derivare dall'enumerazione di directory. Per altre informazioni, vedere Procedura: enumerare directory e file.

Il chiamante non dispone dell'autorizzazione richiesta.

Esempio

Nell'esempio seguente viene generata un'eccezione se si tenta di eliminare una directory non vuota.

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 {}
    }
}
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

Commenti

Per un elenco di attività di I/O comuni, vedere Attività di I/O comuni.

Vedi anche

Si applica a

Delete(Boolean)

Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs

Elimina questa istanza di DirectoryInfo, specificando se eliminare le subdirectory e i file.

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

Parametri

recursive
Boolean

true per eliminare la directory, le rispettive sottodirectory e tutti i file; in caso contrario, false.

Eccezioni

La directory contiene un file di sola lettura.

La directory descritta dall'oggetto DirectoryInfo non esiste o non è possibile trovarla.

La directory è in sola lettura.

-oppure-

La directory contiene uno o più file o sottodirectory e recursive è false.

-oppure-

La directory è la directory di lavoro corrente dell'applicazione.

-oppure-

Handle aperto sulla directory o su uno dei file e il sistema operativo è Windows XP o versione precedente. Questo handle aperto può derivare dall'enumerazione di directory e file. Per altre informazioni, vedere Procedura: enumerare directory e file.

Il chiamante non dispone dell'autorizzazione richiesta.

Esempio

Nell'esempio seguente viene illustrata l'eliminazione di una directory. Poiché la directory viene rimossa, prima di tutto aggiungere un commento alla Delete riga per verificare che la directory esista. Annullare quindi ilcommentare la stessa riga di codice per verificare che la directory sia stata rimossa correttamente.

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

Commenti

Se non ha file o sottodirectory, questo metodo elimina l'oggetto DirectoryInfoDirectoryInfo anche se recursive è false. Tentativo di eliminare un DirectoryInfo oggetto che non è vuoto quando recursive viene false generato un IOExceptionoggetto .

Per un elenco di attività di I/O comuni, vedere Attività di I/O comuni.

Vedi anche

Si applica a