Partilhar via


DirectoryInfo.Delete Método

Definição

Exclui um DirectoryInfo e seu conteúdo de um caminho.

Sobrecargas

Delete()

Exclui DirectoryInfo se estiver vazia.

Delete(Boolean)

Exclui essa instância de um DirectoryInfo, especificando se as subpastas e os arquivos serão excluídos.

Delete()

Origem:
DirectoryInfo.cs
Origem:
DirectoryInfo.cs
Origem:
DirectoryInfo.cs

Exclui DirectoryInfo se estiver vazia.

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

Exceções

O diretório contém um arquivo somente leitura.

O diretório descrito por este objeto DirectoryInfo não existe ou não foi encontrado.

O diretório não está vazio.

- ou -

O diretório é o diretório de trabalho atual do aplicativo.

- ou -

Há um identificador aberto no arquivo e o sistema operacional é o Windows XP ou versão anterior. Esse identificador aberto pode resultar da enumeração de diretórios. Para obter mais informações, consulte How to: Enumerate Directories and Files (Como enumerar diretórios e arquivos).

O chamador não tem a permissão necessária.

Exemplos

O exemplo a seguir gerará uma exceção se você tentar excluir um diretório que não esteja vazio.

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

Comentários

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

Delete(Boolean)

Origem:
DirectoryInfo.cs
Origem:
DirectoryInfo.cs
Origem:
DirectoryInfo.cs

Exclui essa instância de um DirectoryInfo, especificando se as subpastas e os arquivos serão excluídos.

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

Parâmetros

recursive
Boolean

true para excluir esse diretório, as subpastas e todos os arquivos; caso contrário, false.

Exceções

O diretório contém um arquivo somente leitura.

O diretório descrito por este objeto DirectoryInfo não existe ou não foi encontrado.

O diretório é somente leitura.

- ou -

O diretório contém um ou mais arquivos ou subdiretórios e recursive é false.

- ou -

O diretório é o diretório de trabalho atual do aplicativo.

- ou -

Há um identificador aberto no diretório ou em um dos arquivos e o sistema operacional é o Windows XP ou anterior. Esse identificador aberto pode resultar da enumeração de diretórios e arquivos. Para obter mais informações, consulte How to: Enumerate Directories and Files (Como enumerar diretórios e arquivos).

O chamador não tem a permissão necessária.

Exemplos

O exemplo a seguir demonstra a exclusão de um diretório. Como o diretório foi removido, primeiro comente a Delete linha para testar se o diretório existe. Em seguida, remova a marca de comentário da mesma linha de código para testar se o diretório foi removido com êxito.

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

Comentários

Se o DirectoryInfo não tiver arquivos ou subdiretórios, esse método excluirá o DirectoryInfo mesmo que recursive seja false. Tentar excluir um DirectoryInfo que não está vazio quando recursive é false lança um IOException.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a