Directory Clase
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í.
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 "Ejemplo".
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.
Para crear un directorio, use uno de los CreateDirectory métodos .
Para eliminar un directorio, use uno de los Delete métodos .
Para obtener o establecer el directorio actual de una aplicación, use el GetCurrentDirectory método o SetCurrentDirectory .
Para manipular DateTime información relacionada con la creación, el acceso y la escritura de un directorio, use métodos como SetLastAccessTime y SetCreationTime.
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 |
CreateTempSubdirectory(String) |
Crea un directorio vacío con nombre único en el directorio temporal del usuario actual. |
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. |