Directory.Delete Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Elimina un directorio especificado y opcionalmente cualquier subdirectorio.
Sobrecargas
Delete(String) |
Elimina un directorio vacío de una ruta de acceso especificada. |
Delete(String, Boolean) |
Elimina el directorio especificado y, si está indicado, los subdirectorios y archivos que contiene. |
Delete(String)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- Directory.cs
Elimina un directorio vacío de una ruta de acceso especificada.
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
Nombre del directorio vacío que se va a quitar. El directorio debe permitir la escritura y estar vacío.
Excepciones
Ya existe un archivo con el mismo nombre y ubicación especificados por path
.
o bien
El directorio es el directorio de trabajo actual de la aplicación.
o bien
El directorio especificado por path
no está vacío.
O bien
El directorio es de solo lectura o contiene un archivo de solo lectura.
O bien
Otro proceso está usando el directorio.
El llamador no dispone del permiso requerido.
Versiones de .NET Framework y .NET Core anteriores a 2.1: path
es una cadena de longitud cero, solo contiene espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().
path
es null
.
La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
path
no existe o no se pudo encontrar.
O bien
La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).
Ejemplos
En el ejemplo siguiente se muestra cómo crear un nuevo directorio y subdirectorio y, a continuación, eliminar solo el subdirectorio.
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
Comentarios
Este método se comporta de forma idéntica a Delete(String, Boolean) con false
el especificado para el segundo parámetro.
El path
parámetro puede especificar información de ruta de acceso relativa o absoluta. La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. Para obtener el directorio de trabajo actual, consulte GetCurrentDirectory.
Los espacios finales se quitan del final del path
parámetro antes de eliminar el directorio.
Este método produce un IOException si el directorio especificado en el path
parámetro contiene archivos o subdirectorios.
La distinción entre mayúsculas y minúsculas del path
parámetro corresponde al del sistema de archivos en el que se ejecuta el código. Por ejemplo, no distingue mayúsculas de minúsculas en NTFS (el sistema de archivos de Windows predeterminado) y distingue mayúsculas de minúsculas en sistemas de archivos Linux.
En algunos casos, si tiene abierto el directorio especificado en Explorador de archivos, es posible que el Delete método no pueda eliminarlo.
Consulte también
Se aplica a
Delete(String, Boolean)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- Directory.cs
Elimina el directorio especificado y, si está indicado, los subdirectorios y archivos que contiene.
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
Nombre del directorio que se va a quitar.
- recursive
- Boolean
true
para quitar directorios, subdirectorios y archivos de path
; de lo contrario, false
.
Excepciones
Ya existe un archivo con el mismo nombre y ubicación especificados por path
.
o bien
El directorio especificado por path
es de solo lectura o recursive
es false
y path
no es un directorio vacío.
o bien
El directorio es el directorio de trabajo actual de la aplicación.
o bien
El directorio contiene un archivo de solo lectura.
O bien
Otro proceso está usando el directorio.
El llamador no dispone del permiso requerido.
Versiones de .NET Framework y .NET Core anteriores a 2.1: path
es una cadena de longitud cero, solo contiene espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().
path
es null
.
La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
path
no existe o no se pudo encontrar.
O bien
La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).
Ejemplos
En el ejemplo siguiente se muestra cómo crear un nuevo directorio, subdirectorio y archivo en el subdirectorio y, a continuación, eliminar de forma recursiva todos los elementos nuevos.
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
Comentarios
El path
parámetro puede especificar información de ruta de acceso relativa o absoluta. La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. Para obtener el directorio de trabajo actual, consulte GetCurrentDirectory.
Los espacios finales se quitan del final del path
parámetro antes de eliminar el directorio.
La distinción entre mayúsculas y minúsculas del path
parámetro corresponde al del sistema de archivos en el que se ejecuta el código. Por ejemplo, no distingue mayúsculas de minúsculas en NTFS (el sistema de archivos de Windows predeterminado) y distingue mayúsculas de minúsculas en sistemas de archivos Linux.
Si el recursive
parámetro es true
, el usuario debe tener permiso de escritura para el directorio actual, así como para todos los subdirectorios.
El comportamiento de este método difiere ligeramente al eliminar un directorio que contiene un punto de reanálisis, como un vínculo simbólico o un punto de montaje. Si el punto de reanálisis es un directorio, como un punto de montaje, se desmonta y se elimina el punto de montaje. Este método no se repite a través del punto de reanálisis. Si el punto de reanálisis es un vínculo simbólico a un archivo, se elimina el punto de reanálisis y no el destino del vínculo simbólico.
En algunos casos, si tiene abierto el directorio especificado en Explorador de archivos, es posible que el Delete método no pueda eliminarlo.