Directory.Delete Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.