Directory Clase

Definición

Expone métodos estáticos para crear, mover y enumerar archivos en directorios y subdirectorios. Esta clase no puede heredarse.

public ref class Directory abstract sealed
public ref class Directory sealed
public static class Directory
public sealed class Directory
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
Herencia
Directory
Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo recuperar todos los archivos de texto de un directorio y moverlos a un directorio nuevo. Después de mover los archivos, ya no existen en el directorio original.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))

with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Module

En el ejemplo siguiente se muestra cómo usar el EnumerateFiles método para recuperar una colección de archivos de texto de un directorio y, a continuación, usar esa colección en una consulta para buscar todas las líneas que contienen "Example".

using System;
using System.IO;
using System.Linq;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string archiveDirectory = @"C:\archive";

            var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(retrievedFile)
                        where line.Contains("Example")
                        select new
                        {
                            File = retrievedFile,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine("{0} contains {1}", f.File, f.Line);
            }
            Console.WriteLine("{0} lines found.", files.Count().ToString());
        }
    }
}
open System.IO

let archiveDirectory = @"C:\archive"

let files = 
    query {
        for retrivedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) do
        for line in File.ReadLines retrivedFile do
        where (line.Contains "file") 
        select 
            {| File = retrivedFile 
               Line = line |}
    }

for f in files do
    printfn $"{f.File} contains {f.Line}"
printfn "{Seq.length files} lines found."
Imports System.IO

Module Module1

    Sub Main()
        Dim archiveDirectory As String = "C:\archive"

        Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    From line In File.ReadLines(retrievedFile)
                    Where line.Contains("Example")
                    Select New With {.curFile = retrievedFile, .curLine = line}

        For Each f In files
            Console.WriteLine("{0} contains {1}", f.curFile, f.curLine)
        Next
        Console.WriteLine("{0} lines found.", files.Count.ToString())

    End Sub

End Module

En el ejemplo siguiente se muestra cómo mover un directorio y todos sus archivos a un directorio nuevo. El directorio original ya no existe después de que se haya movido.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\source";
            string destinationDirectory = @"C:\destination";

            try
            {
                Directory.Move(sourceDirectory, destinationDirectory);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"

try
    Directory.Move(sourceDirectory, destinationDirectory)
with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\source"
        Dim destinationDirectory As String = "C:\destination"

        Try
            Directory.Move(sourceDirectory, destinationDirectory)
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

Comentarios

Use la Directory clase para operaciones típicas, como copiar, mover, cambiar el nombre, crear y eliminar directorios.

Los métodos estáticos de la Directory clase realizan comprobaciones de seguridad en todos los métodos. Si va a reutilizar un objeto varias veces, considere la posibilidad de usar el método de instancia correspondiente de DirectoryInfo en su lugar, ya que la comprobación de seguridad no siempre será necesaria.

Si está realizando solo una acción relacionada con el directorio, puede ser más eficaz usar un método estático Directory en lugar de un método de instancia correspondiente DirectoryInfo . La mayoría Directory de los métodos requieren la ruta de acceso al directorio que está manipulando.

Nota

En los miembros que aceptan un parámetro de cadena path , esa ruta de acceso debe tener un formato correcto o se produce una excepción. Por ejemplo, si una ruta de acceso es completa pero comienza con un espacio (" c:\temp"), la cadena de ruta de acceso no se recorta, por lo que la ruta de acceso se considera incorrecta y se genera una excepción. Además, una ruta de acceso o una combinación de rutas de acceso no se puede calificar dos veces. Por ejemplo, "c:\temp c:\windows" también genera una excepción. Asegúrese de que las rutas de acceso están bien formadas al usar métodos que aceptan una cadena de ruta de acceso. Para obtener más información, vea Path.

En los miembros que aceptan una ruta de acceso, la ruta de acceso puede hacer referencia a un archivo o a un directorio. Puede usar una ruta de acceso completa, una ruta de acceso relativa o una ruta de acceso UNC (Convención de nomenclatura universal) para un servidor y un nombre de recurso compartido. Por ejemplo, todas las rutas de acceso siguientes son aceptables:

  • "c:\\MyDir" en C#, o "c:\MyDir" en Visual Basic.

  • "MyDir\\MySubdir" en C#, o "MyDir\MySubDir" en Visual Basic.

  • "\\\\MyServer\\MyShare" en C#, o "\\MyServer\MyShare" en Visual Basic.

De forma predeterminada, se concede acceso completo de lectura y escritura a nuevos directorios a todos los usuarios. Sin embargo, la aplicación debe tener la seguridad correcta para acceder a los directorios existentes.

Para solicitar permisos para un directorio y todos sus subdirectorios, finalice la cadena de ruta de acceso con el carácter separador de directorio. (Por ejemplo, "C:\Temp\" concede acceso a C:\Temp\ y a todos sus subdirectorios). Para solicitar permisos solo para un directorio específico, finalice la cadena de ruta de acceso con un punto. (Por ejemplo, "C:\Temp\". concede acceso solo a C:\Temp\, no a sus subdirectorios).

En los miembros que aceptan un searchPattern parámetro, la cadena de búsqueda puede ser cualquier combinación de caracteres literales y dos caracteres comodín; * y ?. Este parámetro no reconoce expresiones regulares. Para obtener más información, vea el EnumerateDirectories(String, String) método o cualquier otro método que use el searchPattern parámetro .

Para obtener una lista de las tareas de E/S comunes, consulte Tareas de E/S comunes.

Directory y DirectoryInfo no se admiten para su uso en aplicaciones de la Tienda Windows. Para obtener información sobre cómo acceder a archivos y carpetas en aplicaciones de la Tienda Windows, consulta Obtener acceso a datos y archivos (aplicaciones de la Tienda Windows).

Métodos

CreateDirectory(String)

Crea todos los directorios y subdirectorios en la ruta de acceso especificada, a menos que ya existan.

CreateDirectory(String, DirectorySecurity)

Crea todos los directorios en la ruta de acceso especificada, salvo que ya existan, aplicando la seguridad de Windows especificada.

CreateDirectory(String, UnixFileMode)

Crea todos los directorios y subdirectorios en la ruta de acceso especificada con los permisos especificados a menos que ya existan.

CreateSymbolicLink(String, String)

Crea un vínculo simbólico de directorio identificado por path eso apunta a pathToTarget.

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.

EnumerateDirectories(String)

Devuelve una colección enumerable de nombres completos de directorio en una ruta de acceso especificada.

EnumerateDirectories(String, String)

Devuelve una colección enumerable de nombres completos de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada.

EnumerateDirectories(String, String, EnumerationOptions)

Devuelve una colección enumerable de los nombres completos de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada y, opcionalmente, busca en subdirectorios.

EnumerateDirectories(String, String, SearchOption)

Devuelve una colección enumerable de nombres completos de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada y, opcionalmente, busca en subdirectorios.

EnumerateFiles(String)

Devuelve una colección enumerable de nombres completos de archivo en una ruta de acceso especificada.

EnumerateFiles(String, String)

Devuelve una colección enumerable de nombres completos de archivo que coinciden con un patrón de búsqueda en una ruta de acceso especificada.

EnumerateFiles(String, String, EnumerationOptions)

Devuelve una colección enumerable de nombres completos de archivos que coinciden con un patrón de búsqueda y con opciones de enumeración en una ruta de acceso especificada y, opcionalmente, busca en subdirectorios.

EnumerateFiles(String, String, SearchOption)

Devuelve una colección enumerable de nombres completos de archivo que coinciden con un patrón de búsqueda en una ruta de acceso especificada y, opcionalmente, busca en subdirectorios.

EnumerateFileSystemEntries(String)

Devuelve una colección enumerable de nombres de archivo y nombres de directorio en una ruta de acceso especificada.

EnumerateFileSystemEntries(String, String)

Devuelve una colección enumerable de nombres de archivo y nombres de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Devuelve una colección enumerable de nombres de archivo y nombres de directorio que coinciden con un patrón de búsqueda y opciones de enumeración en una ruta de acceso especificada.

EnumerateFileSystemEntries(String, String, SearchOption)

Devuelve una colección enumerable de nombres de archivo y de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada y, opcionalmente, busca en subdirectorios.

Exists(String)

Determina si la ruta de acceso dada hace referencia a un directorio existente en el disco.

GetAccessControl(String)

Obtiene un objeto DirectorySecurity que encapsula las entradas de la lista de control de acceso (ACL) para un directorio especificado.

GetAccessControl(String, AccessControlSections)

Obtiene un objeto DirectorySecurity que encapsula el tipo especificado de las entradas de la lista de control de acceso (ACL) para un directorio especificado.

GetCreationTime(String)

Obtiene la fecha y hora de creación de un directorio.

GetCreationTimeUtc(String)

Obtiene la fecha y hora de creación, en formato de Hora universal coordinada (UTC), de un directorio.

GetCurrentDirectory()

Obtiene el directorio de trabajo actual de la aplicación.

GetDirectories(String)

Devuelve los nombres de los subdirectorios (con sus rutas de acceso) del directorio especificado.

GetDirectories(String, String)

Devuelve los nombres de los subdirectorios (con sus rutas de acceso) que coinciden con el patrón de búsqueda especificado en el directorio especificado.

GetDirectories(String, String, EnumerationOptions)

Devuelve los nombres de los subdirectorios (con sus rutas de acceso) que coinciden con el patrón de búsqueda y las opciones de enumeración especificados en el directorio especificado.

GetDirectories(String, String, SearchOption)

Devuelve los nombres de los subdirectorios (incluidas las rutas de acceso) que coinciden con el patrón de búsqueda especificado en el directorio especificado y, opcionalmente, busca en subdirectorios.

GetDirectoryRoot(String)

Devuelve la información del volumen, la información de raíz o ambas para la ruta de acceso especificada.

GetFiles(String)

Devuelve los nombres de archivo (con sus rutas de acceso) del directorio especificado.

GetFiles(String, String)

Devuelve los nombres de los archivos (con sus rutas de acceso) que coinciden con el patrón de búsqueda especificado en el directorio especificado.

GetFiles(String, String, EnumerationOptions)

Devuelve los nombres de los archivos (con sus rutas de acceso) que coinciden con el patrón de búsqueda y las opciones de enumeración especificados en el directorio especificado.

GetFiles(String, String, SearchOption)

Devuelve los nombres de los archivos (con sus rutas de acceso) que coincidan con el patrón de búsqueda especificado en el directorio especificado, utilizando un valor para determinar si se debe buscar en los subdirectorios.

GetFileSystemEntries(String)

Devuelve los nombres de todos los archivos y subdirectorios de una ruta de acceso especificada.

GetFileSystemEntries(String, String)

Devuelve una matriz o nombres de archivo y nombres de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada.

GetFileSystemEntries(String, String, EnumerationOptions)

Devuelve una matriz de nombres de archivo y nombres de directorio que coinciden con un patrón de búsqueda y opciones de enumeración en una ruta de acceso especificada.

GetFileSystemEntries(String, String, SearchOption)

Devuelve una matriz de todos los nombres de archivo y de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada y, opcionalmente, busca en subdirectorios.

GetLastAccessTime(String)

Devuelve la fecha y hora a la que se produjo el último acceso al archivo o directorio especificado.

GetLastAccessTimeUtc(String)

Devuelve la fecha y la hora, en formato de Hora universal coordinada (UTC), a la que se produjo el último acceso al archivo o directorio especificado.

GetLastWriteTime(String)

Devuelve la fecha y hora a la que se escribió por última vez en el archivo o directorio especificado.

GetLastWriteTimeUtc(String)

Devuelve la fecha y la hora, en formato de Hora universal coordinada (UTC), a la que se escribió por última vez en el archivo o directorio especificado.

GetLogicalDrives()

Recupera los nombres de las unidades lógicas de este equipo con el formato "<letra de unidad>:\".

GetParent(String)

Recupera el directorio principal de la ruta especificada, incluidas tanto las rutas de acceso absolutas como las relativas.

Move(String, String)

Mueve un archivo o directorio y su contenido a una nueva ubicación.

ResolveLinkTarget(String, Boolean)

Obtiene el destino del vínculo de directorio especificado.

SetAccessControl(String, DirectorySecurity)

Aplica al directorio especificado las entradas de la lista de control de acceso (ACL) descritas por un objeto DirectorySecurity.

SetCreationTime(String, DateTime)

Establece la fecha y hora de creación del archivo o la carpeta especificados.

SetCreationTimeUtc(String, DateTime)

Establece la fecha y hora de creación, en formato de Hora universal coordinada (UTC), del archivo o directorio especificado.

SetCurrentDirectory(String)

Establece el directorio de trabajo actual de la aplicación en el directorio especificado.

SetLastAccessTime(String, DateTime)

Establece la fecha y hora a la que se produjo el último acceso al archivo o directorio especificado.

SetLastAccessTimeUtc(String, DateTime)

Establece la fecha y la hora, en formato de Hora universal coordinada (UTC), a la que se produjo el último acceso al archivo o directorio especificado.

SetLastWriteTime(String, DateTime)

Establece la fecha y la hora en que escribió en un directorio por última vez.

SetLastWriteTimeUtc(String, DateTime)

Establece la fecha y la hora, en formato de Hora universal coordinada (UTC), a la que se escribió en el directorio por última vez.

Se aplica a

Consulte también