Compartir vía


Directory.Delete Método

Definición

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.

Consulte también

Se aplica a