DirectoryInfo 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 de instancia para crear, mover y enumerar a través de directorios y subdirectorios. Esta clase no puede heredarse.
public ref class DirectoryInfo sealed : System::IO::FileSystemInfo
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
inherit FileSystemInfo
[<System.Serializable>]
type DirectoryInfo = class
inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DirectoryInfo = class
inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
- Herencia
- Herencia
- Atributos
Ejemplos
En el ejemplo siguiente se muestran algunos de los miembros principales de la DirectoryInfo clase .
using System;
using System.IO;
class Test
{
public static void Main()
{
// Specify the directories you want to manipulate.
DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
try
{
// Determine whether the directory exists.
if (di.Exists)
{
// Indicate that the directory already exists.
Console.WriteLine("That path exists already.");
return;
}
// Try to create the directory.
di.Create();
Console.WriteLine("The directory was created successfully.");
// Delete the directory.
di.Delete();
Console.WriteLine("The directory was deleted successfully.");
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
finally {}
}
}
open System.IO
// Specify the directories you want to manipulate.
let di = DirectoryInfo @"c:\MyDir"
try
// Determine whether the directory exists.
if di.Exists then
// Indicate that the directory already exists.
printfn "That path exists already."
else
// Try to create the directory.
di.Create()
printfn "The directory was created successfully."
// Delete the directory.
di.Delete()
printfn "The directory was deleted successfully."
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
' Specify the directories you want to manipulate.
Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir")
Try
' Determine whether the directory exists.
If di.Exists Then
' Indicate that it already exists.
Console.WriteLine("That path exists already.")
Return
End If
' Try to create the directory.
di.Create()
Console.WriteLine("The directory was created successfully.")
' Delete the directory.
di.Delete()
Console.WriteLine("The directory was deleted successfully.")
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
En el ejemplo siguiente se muestra cómo copiar un directorio y su contenido.
using System;
using System.IO;
class CopyDir
{
public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
if (source.FullName.ToLower() == target.FullName.ToLower())
{
return;
}
// Check if the target directory exists, if not, create it.
if (!Directory.Exists(target.FullName))
{
Directory.CreateDirectory(target.FullName);
}
// Copy each file into it's new directory.
foreach (FileInfo fi in source.GetFiles())
{
Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
}
// Copy each subdirectory using recursion.
foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
{
DirectoryInfo nextTargetSubDir =
target.CreateSubdirectory(diSourceSubDir.Name);
CopyAll(diSourceSubDir, nextTargetSubDir);
}
}
public static void Main()
{
string sourceDirectory = @"c:\sourceDirectory";
string targetDirectory = @"c:\targetDirectory";
DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);
CopyAll(diSource, diTarget);
}
// Output will vary based on the contents of the source directory.
}
open System.IO
let rec copyAll (source: DirectoryInfo) (target: DirectoryInfo) =
if source.FullName.ToLower() <> target.FullName.ToLower() then
// Check if the target directory exists, if not, create it.
if not (Directory.Exists target.FullName) then
Directory.CreateDirectory target.FullName |> ignore
// Copy each file into it's new directory.
for fi in source.GetFiles() do
printfn $@"Copying {target.FullName}\{fi.Name}"
fi.CopyTo(Path.Combine(string target, fi.Name), true) |> ignore
// Copy each subdirectory using recursion.
for diSourceSubDir in source.GetDirectories() do
target.CreateSubdirectory diSourceSubDir.Name
|> copyAll diSourceSubDir
let sourceDirectory = @"c:\sourceDirectory"
let targetDirectory = @"c:\targetDirectory"
let diSource = DirectoryInfo sourceDirectory
let diTarget = DirectoryInfo targetDirectory
copyAll diSource diTarget
// Output will vary based on the contents of the source directory.
Imports System.IO
Class CopyDir
Shared Sub CopyAll(ByVal source As DirectoryInfo, ByVal target As DirectoryInfo)
If (source.FullName.ToLower() = target.FullName.ToLower()) Then
Return
End If
' Check if the target directory exists, if not, create it.
If Directory.Exists(target.FullName) = False Then
Directory.CreateDirectory(target.FullName)
End If
' Copy each file into it's new directory.
For Each fi As FileInfo In source.GetFiles()
Console.WriteLine("Copying {0}\{1}", target.FullName, fi.Name)
fi.CopyTo(Path.Combine(target.ToString(), fi.Name), True)
Next
' Copy each subdirectory using recursion.
For Each diSourceSubDir As DirectoryInfo In source.GetDirectories()
Dim nextTargetSubDir As DirectoryInfo = target.CreateSubdirectory(diSourceSubDir.Name)
CopyAll(diSourceSubDir, nextTargetSubDir)
Next
End Sub
Shared Sub Main()
Dim sourceDirectory As String = "c:\\sourceDirectory"
Dim targetDirectory As String = "c:\\targetDirectory"
Dim diSource As DirectoryInfo = New DirectoryInfo(sourceDirectory)
Dim diTarget As DirectoryInfo = New DirectoryInfo(targetDirectory)
CopyAll(diSource, diTarget)
End Sub
' Output will vary based on the contents of the source directory.
End Class
Comentarios
Use la DirectoryInfo clase para operaciones típicas, como copiar, mover, cambiar el nombre, crear y eliminar directorios.
Si va a reutilizar un objeto varias veces, considere la posibilidad de usar el método de instancia de DirectoryInfo en lugar de los métodos estáticos correspondientes de la Directory clase, ya que una comprobación de seguridad no siempre será necesaria.
Nota:
En los miembros que aceptan una ruta de acceso como una cadena de entrada, esa ruta de acceso debe tener un formato correcto o se produce una excepción. Por ejemplo, si una ruta de acceso está completa pero comienza con un espacio, la ruta de acceso no se recorta en métodos de la clase . Por lo tanto, la ruta de acceso tiene un formato incorrecto y se genera una excepción. De forma similar, una ruta de acceso o una combinación de rutas de acceso no se puede calificar completamente dos veces. Por ejemplo, "c:\temp c:\windows" también genera una excepción en la mayoría de los casos. Asegúrese de que las rutas de acceso están bien formadas cuando se usan métodos que aceptan una cadena de ruta de acceso.
En los miembros que aceptan una ruta de acceso, la ruta de acceso puede hacer referencia a un archivo o simplemente a un directorio. La ruta de acceso especificada también puede hacer referencia a una ruta de acceso relativa o a una ruta de acceso de convención de nomenclatura universal (UNC) para un servidor y un nombre de recurso compartido. Por ejemplo, todas las siguientes son rutas de acceso aceptables:
"c:\\MyDir\\MyFile.txt" en C#, o "c:\MyDir\MyFile.txt" en Visual Basic.
"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.
Para obtener una lista de tareas comunes de E/S, consulte Tareas comunes de E/S.
Constructores
| Nombre | Description |
|---|---|
| DirectoryInfo(String) |
Inicializa una nueva instancia de la DirectoryInfo clase en la ruta de acceso especificada. |
Campos
| Nombre | Description |
|---|---|
| FullPath |
Representa la ruta de acceso completa del directorio o archivo. (Heredado de FileSystemInfo) |
| OriginalPath |
Ruta de acceso especificada originalmente por el usuario, ya sea relativa o absoluta. (Heredado de FileSystemInfo) |
Propiedades
| Nombre | Description |
|---|---|
| Attributes |
Obtiene o establece los atributos del archivo o directorio actual. (Heredado de FileSystemInfo) |
| CreationTime |
Obtiene o establece la hora de creación del archivo o directorio actual. (Heredado de FileSystemInfo) |
| CreationTimeUtc |
Obtiene o establece la hora de creación, en hora universal coordinada (UTC), del archivo o directorio actual. (Heredado de FileSystemInfo) |
| Exists |
Obtiene un valor que indica si el directorio existe. |
| Extension |
Obtiene la parte de extensión del nombre de archivo, incluido el punto |
| FullName |
Obtiene la ruta de acceso completa del directorio. |
| FullName |
Obtiene la ruta de acceso completa del directorio o archivo. (Heredado de FileSystemInfo) |
| LastAccessTime |
Obtiene o establece la hora en que se accedió por última vez al archivo o directorio actual. (Heredado de FileSystemInfo) |
| LastAccessTimeUtc |
Obtiene o establece la hora, en hora universal coordinada (UTC), a la que se accedió por última vez al archivo o directorio actual. (Heredado de FileSystemInfo) |
| LastWriteTime |
Obtiene o establece la hora en la que se escribió por última vez el archivo o directorio actual. (Heredado de FileSystemInfo) |
| LastWriteTimeUtc |
Obtiene o establece la hora, en hora universal coordinada (UTC), en la que se escribió por última vez el archivo o directorio actual. (Heredado de FileSystemInfo) |
| Name |
Obtiene el nombre de esta DirectoryInfo instancia. |
| Parent |
Obtiene el directorio primario de un subdirectorio especificado. |
| Root |
Obtiene la parte raíz del directorio. |
Métodos
| Nombre | Description |
|---|---|
| Create() |
Crea un directorio. |
| Create(DirectorySecurity) |
Crea un directorio mediante un DirectorySecurity objeto . |
| CreateObjRef(Type) |
Crea un objeto que contiene toda la información pertinente necesaria para generar un proxy usado para comunicarse con un objeto remoto. (Heredado de MarshalByRefObject) |
| CreateSubdirectory(String, DirectorySecurity) |
Crea un subdirectorio o subdirectorios en la ruta de acceso especificada con la seguridad especificada. La ruta de acceso especificada puede ser relativa a esta instancia de la DirectoryInfo clase . |
| CreateSubdirectory(String) |
Crea un subdirectorio o subdirectorios en la ruta de acceso especificada. La ruta de acceso especificada puede ser relativa a esta instancia de la DirectoryInfo clase . |
| Delete() |
Elimina esto DirectoryInfo si está vacío. |
| Delete(Boolean) |
Elimina esta instancia de , DirectoryInfoespecificando si se van a eliminar subdirectorios y archivos. |
| EnumerateDirectories() |
Devuelve una colección enumerable de información de directorio en el directorio actual. |
| EnumerateDirectories(String, EnumerationOptions) |
Devuelve una colección enumerable de información de directorio que coincide con el patrón de búsqueda y las opciones de enumeración especificados. |
| EnumerateDirectories(String, SearchOption) |
Devuelve una colección enumerable de información de directorio que coincide con un patrón de búsqueda y una opción de subdirectorio de búsqueda especificadas. |
| EnumerateDirectories(String) |
Devuelve una colección enumerable de información de directorio que coincide con un patrón de búsqueda especificado. |
| EnumerateFiles() |
Devuelve una colección enumerable de información de archivo en el directorio actual. |
| EnumerateFiles(String, EnumerationOptions) |
Devuelve una colección enumerable de información de archivo que coincide con el patrón de búsqueda y las opciones de enumeración especificados. |
| EnumerateFiles(String, SearchOption) |
Devuelve una colección enumerable de información de archivo que coincide con un patrón de búsqueda y una opción de subdirectorio de búsqueda especificada. |
| EnumerateFiles(String) |
Devuelve una colección enumerable de información de archivo que coincide con un patrón de búsqueda. |
| EnumerateFileSystemInfos() |
Devuelve una colección enumerable de información del sistema de archivos en el directorio actual. |
| EnumerateFileSystemInfos(String, EnumerationOptions) |
Devuelve una colección enumerable de información del sistema de archivos que coincide con el patrón de búsqueda y las opciones de enumeración especificados. |
| EnumerateFileSystemInfos(String, SearchOption) |
Devuelve una colección enumerable de información del sistema de archivos que coincide con un patrón de búsqueda y una opción de subdirectorio de búsqueda especificadas. |
| EnumerateFileSystemInfos(String) |
Devuelve una colección enumerable de información del sistema de archivos que coincide con un patrón de búsqueda especificado. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetAccessControl() |
Obtiene un DirectorySecurity objeto que encapsula las entradas de la lista de control de acceso (ACL) del directorio descrito por el objeto actual DirectoryInfo . |
| GetAccessControl(AccessControlSections) |
Obtiene un DirectorySecurity objeto que encapsula el tipo especificado de entradas de lista de control de acceso (ACL) para el directorio descrito por el objeto actual DirectoryInfo . |
| GetDirectories() |
Devuelve los subdirectorios del directorio actual. |
| GetDirectories(String, EnumerationOptions) |
Devuelve una matriz de directorios en el actual que DirectoryInfo coincide con las opciones de enumeración y el patrón de búsqueda especificados. |
| GetDirectories(String, SearchOption) |
Devuelve una matriz de directorios en el actual que DirectoryInfo coincide con los criterios de búsqueda especificados y usa un valor para determinar si se deben buscar subdirectorios. |
| GetDirectories(String) |
Devuelve una matriz de directorios en el actual que DirectoryInfo coincide con los criterios de búsqueda especificados. |
| GetFiles() |
Devuelve una lista de archivos del directorio actual. |
| GetFiles(String, EnumerationOptions) |
Devuelve una lista de archivos del directorio actual que coincide con el patrón de búsqueda y las opciones de enumeración especificados. |
| GetFiles(String, SearchOption) |
Devuelve una lista de archivos del directorio actual que coincide con el patrón de búsqueda especificado y usa un valor para determinar si se van a buscar subdirectorios. |
| GetFiles(String) |
Devuelve una lista de archivos del directorio actual que coincide con el patrón de búsqueda especificado. |
| GetFileSystemInfos() |
Devuelve una matriz de entradas fuertemente tipadas FileSystemInfo que representan todos los archivos y subdirectorios de un directorio. |
| GetFileSystemInfos(String, EnumerationOptions) |
Recupera una matriz de objetos fuertemente tipados FileSystemInfo que representan los archivos y subdirectorios que coinciden con el patrón de búsqueda y las opciones de enumeración especificados. |
| GetFileSystemInfos(String, SearchOption) |
Recupera una matriz de FileSystemInfo objetos que representan los archivos y subdirectorios que coinciden con los criterios de búsqueda especificados. |
| GetFileSystemInfos(String) |
Recupera una matriz de objetos fuertemente tipados FileSystemInfo que representan los archivos y subdirectorios que coinciden con los criterios de búsqueda especificados. |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetLifetimeService() |
Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia. (Heredado de MarshalByRefObject) |
| GetObjectData(SerializationInfo, StreamingContext) |
Establece el SerializationInfo objeto con el nombre de archivo y la información de excepción adicional. (Heredado de FileSystemInfo) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| InitializeLifetimeService() |
Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia. (Heredado de MarshalByRefObject) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| MemberwiseClone(Boolean) |
Crea una copia superficial del objeto actual MarshalByRefObject . (Heredado de MarshalByRefObject) |
| MoveTo(String) |
Mueve una DirectoryInfo instancia y su contenido a una nueva ruta de acceso. |
| Refresh() |
Actualiza el estado del objeto. (Heredado de FileSystemInfo) |
| SetAccessControl(DirectorySecurity) |
Aplica entradas de lista de control de acceso (ACL) descritas por un DirectorySecurity objeto al directorio descrito por el objeto actual DirectoryInfo . |
| ToString() |
Devuelve la ruta de acceso original que se pasó al DirectoryInfo constructor. Use las FullName propiedades o Name para la ruta de acceso completa o el nombre de archivo o directorio en lugar de este método. |