Directory.Delete Método

Definição

Exclui um diretório especificado e, opcionalmente, todos os subdiretórios.

Sobrecargas

Delete(String)

Exclui um diretório vazio de um caminho especificado.

Delete(String, Boolean)

Exclui o diretório especificado e, se indicado, todos os subdiretórios e arquivos no diretório.

Delete(String)

Origem:
Directory.cs
Origem:
Directory.cs
Origem:
Directory.cs

Exclui um diretório vazio de um caminho especificado.

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)

Parâmetros

path
String

O nome do diretório vazio a ser removido. Este diretório deve estar vazio e ser gravável.

Exceções

Já existe um arquivo com o mesmo nome e local especificado pelo path.

- ou -

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

- ou -

O diretório especificado por path não está vazio.

- ou -

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

- ou -

O diretório está sendo usado por outro processo.

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

.NET Framework e versões do .NET Core anteriores à 2.1: path é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars().

path é null.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

path não existe ou não pôde ser encontrado.

- ou -

O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).

Exemplos

O exemplo a seguir mostra como criar um novo diretório e subdiretório e, em seguida, excluir apenas o subdiretório.

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

Comentários

Esse método se comporta de forma idêntica a Delete(String, Boolean) com especificado false para o segundo parâmetro.

O path parâmetro pode especificar informações de caminho relativo ou absoluto. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.

Espaços à direita são removidos do final do path parâmetro antes de excluir o diretório.

Esse método gerará um IOException se o diretório especificado no path parâmetro contiver arquivos ou subdiretórios.

A diferenciação de maiúsculas e minúsculas do path parâmetro corresponde à do sistema de arquivos no qual o código está em execução. Por exemplo, não diferencia maiúsculas de minúsculas no NTFS (o sistema de arquivos padrão do Windows) e diferencia maiúsculas de minúsculas em sistemas de arquivos Linux.

Em alguns casos, se você tiver o diretório especificado aberto em Explorador de Arquivos, o Delete método poderá não ser capaz de excluí-lo.

Confira também

Aplica-se a

Delete(String, Boolean)

Origem:
Directory.cs
Origem:
Directory.cs
Origem:
Directory.cs

Exclui o diretório especificado e, se indicado, todos os subdiretórios e arquivos no diretório.

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)

Parâmetros

path
String

O nome do diretório a ser removido.

recursive
Boolean

true para remover diretórios, subdiretórios e arquivos no path; caso contrário, false.

Exceções

Já existe um arquivo com o mesmo nome e local especificado pelo path.

- ou -

O diretório especificado por path é somente leitura, ou recursive é false e path não é um diretório vazio.

- ou -

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

- ou -

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

- ou -

O diretório está sendo usado por outro processo.

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

.NET Framework e versões do .NET Core anteriores à 2.1: path é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars().

path é null.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

path não existe ou não pôde ser encontrado.

- ou -

O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).

Exemplos

O exemplo a seguir mostra como criar um novo diretório, subdiretório e arquivo no subdiretório e, em seguida, excluir recursivamente todos os novos itens.

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

Comentários

O path parâmetro pode especificar informações de caminho relativo ou absoluto. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.

Espaços à direita são removidos do final do path parâmetro antes de excluir o diretório.

A diferenciação de maiúsculas e minúsculas do path parâmetro corresponde à do sistema de arquivos no qual o código está em execução. Por exemplo, não diferencia maiúsculas de minúsculas no NTFS (o sistema de arquivos padrão do Windows) e diferencia maiúsculas de minúsculas em sistemas de arquivos Linux.

Se o recursive parâmetro for true, o usuário deverá ter permissão de gravação para o diretório atual, bem como para todos os subdiretórios.

O comportamento desse método difere ligeiramente ao excluir um diretório que contém um ponto de nova análise, como um link simbólico ou um ponto de montagem. Se o ponto de nova análise for um diretório, como um ponto de montagem, ele será desmontado e o ponto de montagem será excluído. Esse método não se recursa por meio do ponto de nova análise. Se o ponto de nova análise for um link simbólico para um arquivo, o ponto de nova análise será excluído e não o destino do link simbólico.

Em alguns casos, se você tiver o diretório especificado aberto em Explorador de Arquivos, o Delete método poderá não ser capaz de excluí-lo.

Confira também

Aplica-se a