Directory.Delete Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Apaga um diretório especificado e, opcionalmente, quaisquer subdiretórios.
Sobrecargas
| Name | Description |
|---|---|
| Delete(String) |
Apaga um diretório vazio de um caminho especificado. |
| Delete(String, Boolean) |
Elimina o diretório especificado e, se indicado, quaisquer subdiretórios e ficheiros no diretório. |
Delete(String)
Apaga 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 remover. Este diretório deve ser escritável e vazio.
Exceções
Existe um ficheiro com o mesmo nome e localização especificados por path .
-ou-
O diretório é o diretório de trabalho atual da aplicação.
-ou-
O diretório especificado por path não está vazio.
-ou-
O diretório é apenas de leitura ou contém um ficheiro só de leitura.
-ou-
O diretório está a ser usado por outro processo.
O interlocutor não tem a permissão necessária.
.NET Framework e .NET Core versões anteriores à 2.1: path é uma cadeia de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. Pode consultar caracteres inválidos usando o GetInvalidPathChars() método.
path é null.
O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.
path não existe ou não pôde ser encontrado.
-ou-
O caminho especificado é inválido (por exemplo, está num disco não mapeado).
Exemplos
O exemplo seguinte mostra como criar um novo diretório e subdiretório, e depois eliminar 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
Observações
Este método comporta-se de forma idêntica a Delete(String, Boolean) com false especificado para o segundo parâmetro.
O path parâmetro pode especificar informação relativa ou absoluta do caminho. A informação relativa do caminho é interpretada como relativa ao diretório de trabalho atual. Para obter o diretório de trabalho atual, veja GetCurrentDirectory.
Os espaços finais são removidos do final do path parâmetro antes de eliminar o diretório.
Este método gera um IOException se o diretório especificado no path parâmetro contém ficheiros ou subdiretórios.
A sensibilidade a maiúsculas e minúsculas do path parâmetro corresponde à do sistema de ficheiros onde o código está a correr. Por exemplo, é insensível a maiúsculas minúsculas no NTFS (o sistema de ficheiros padrão do Windows) e sensível a maiúsculas minúsculas em sistemas de ficheiros Linux.
Em alguns casos, se tiver o diretório especificado aberto no Explorador de Ficheiros, o Delete método pode não conseguir apagá-lo.
Ver também
Aplica-se a
Delete(String, Boolean)
Elimina o diretório especificado e, se indicado, quaisquer subdiretórios e ficheiros 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 remover.
- recursive
- Boolean
true para remover diretórios, subdiretórios e ficheiros em path; caso contrário, false.
Exceções
Existe um ficheiro com o mesmo nome e localização especificados por path .
-ou-
O diretório especificado por path é apenas leitura, ou seja recursive , é false e path não é um diretório vazio.
-ou-
O diretório é o diretório de trabalho atual da aplicação.
-ou-
O diretório contém um ficheiro apenas de leitura.
-ou-
O diretório está a ser usado por outro processo.
O interlocutor não tem a permissão necessária.
.NET Framework e .NET Core versões anteriores à 2.1: path é uma cadeia de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. Pode consultar caracteres inválidos usando o GetInvalidPathChars() método.
path é null.
O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.
path não existe ou não pôde ser encontrado.
-ou-
O caminho especificado é inválido (por exemplo, está num disco não mapeado).
Exemplos
O exemplo seguinte mostra como criar um novo diretório, subdiretório e ficheiro no subdiretório, e depois eliminar 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
Observações
O path parâmetro pode especificar informação relativa ou absoluta do caminho. A informação relativa do caminho é interpretada como relativa ao diretório de trabalho atual. Para obter o diretório de trabalho atual, veja GetCurrentDirectory.
Os espaços finais são removidos do final do path parâmetro antes de eliminar o diretório.
A sensibilidade a maiúsculas e minúsculas do path parâmetro corresponde à do sistema de ficheiros onde o código está a correr. Por exemplo, é insensível a maiúsculas minúsculas no NTFS (o sistema de ficheiros padrão do Windows) e sensível a maiúsculas minúsculas em sistemas de ficheiros Linux.
Se o recursive parâmetro for true, o utilizador deve ter permissão de escrita para o diretório atual, bem como para todos os subdiretórios.
O comportamento deste método difere ligeiramente ao eliminar um diretório que contém um ponto de reparse, como um link simbólico ou um ponto de montagem. Se o ponto de reparação for um diretório, como um ponto de montagem, este é desmontado e o ponto de montagem é eliminado. Este método não recorre através do ponto de reparse. Se o ponto de análise for uma ligação simbólica para um ficheiro, o ponto de análise é eliminado e não o destino da ligação simbólica.
Em alguns casos, se tiver o diretório especificado aberto no Explorador de Ficheiros, o Delete método pode não conseguir apagá-lo.