DirectoryInfo Clase

Definición

Expone métodos de instancia para crear, mover y enumerar archivos en directorios y subdirectorios.Exposes instance methods for creating, moving, and enumerating through directories and subdirectories. Esta clase no puede heredarse.This class cannot be inherited.

public ref class DirectoryInfo sealed : System::IO::FileSystemInfo
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
    inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
Herencia
Atributos

Ejemplos

En el ejemplo siguiente se muestran algunos de los miembros principales DirectoryInfo de la clase.The following example demonstrates some of the main members of the DirectoryInfo class.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di = gcnew 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 0;
      }
      
      // 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 );
   }

}

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 {}
    }
}
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.The following example demonstrates how to copy a directory and its contents.

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) == false)
        {
            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.
}
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 las operaciones típicas, como copiar, mover, cambiar el nombre, crear y eliminar directorios.Use the DirectoryInfo class for typical operations such as copying, moving, renaming, creating, and deleting directories.

Si va a reutilizar un objeto varias veces, considere la posibilidad de usar el método DirectoryInfo de instancia de en lugar de los métodos estáticos correspondientes de la Directory clase, ya que no siempre será necesario realizar una comprobación de seguridad.If you are going to reuse an object several times, consider using the instance method of DirectoryInfo instead of the corresponding static methods of the Directory class, because a security check will not always be necessary.

Nota

En los miembros que aceptan una ruta de acceso como una cadena de entrada, la ruta de acceso debe tener el formato correcto o se produce una excepción.In members that accept a path as an input string, that path must be well-formed or an exception is raised. Por ejemplo, si una ruta de acceso es completa pero comienza con un espacio, la ruta de acceso no se recorta en los métodos de la clase.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. Por lo tanto, la ruta de acceso tiene un formato incorrecto y se genera una excepción.Therefore, the path is malformed and an exception is raised. Del mismo modo, una ruta de acceso o una combinación de rutas de acceso no se puede calificar completamente dos veces.Similarly, a path or a combination of paths cannot be fully qualified twice. Por ejemplo, "c:\temp c:\Windows" también genera una excepción en la mayoría de los casos.For example, "c:\temp c:\windows" also raises an exception in most cases. Asegúrese de que las rutas de acceso tienen el formato correcto al usar métodos que aceptan una cadena de ruta de acceso.Ensure that your paths are well-formed when using methods that accept a path string.

En los miembros que aceptan una ruta de acceso, la ruta de acceso puede hacer referencia a un archivo o solo a un directorio.In members that accept a path, the path can refer to a file or just a directory. La ruta de acceso especificada también puede hacer referencia a una ruta de acceso relativa o a una ruta de acceso UNC (Convención de nomenclatura universal) para un servidor y un nombre de recurso compartido.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. Por ejemplo, todas las siguientes son rutas de acceso aceptables:For example, all the following are acceptable paths:

  • "c:\\MyDir\\MyFile.txt" in C#o "c:\MyDir\MyFile.txt" en Visual Basic."c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.

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

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

  • "\\ C#\MyServer \MyShare" in o"\\miservidor\mirecursocompartido" en Visual Basic.\\"\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

De forma predeterminada, se concede a todos los usuarios el acceso de lectura y escritura completo a los nuevos directorios.By default, full read/write access to new directories is granted to all users.

Para obtener una lista de tareas de e/s comunes, consulte tareas comunes de e/s.For a list of common I/O tasks, see Common I/O Tasks.

Constructores

DirectoryInfo(String)

Inicializa una nueva instancia de la clase DirectoryInfo en la ruta de acceso especificada.Initializes a new instance of the DirectoryInfo class on the specified path.

Campos

FullPath

Representa la ruta de acceso completa del directorio o el archivo.Represents the fully qualified path of the directory or file.

(Heredado de FileSystemInfo)
OriginalPath

La ruta de acceso especificada originalmente por el usuario, ya sea relativa o absoluta.The path originally specified by the user, whether relative or absolute.

(Heredado de FileSystemInfo)

Propiedades

Attributes

Obtiene o establece los atributos del archivo o directorio actual.Gets or sets the attributes for the current file or directory.

(Heredado de FileSystemInfo)
CreationTime

Obtiene o establece la hora de creación del archivo o directorio actual.Gets or sets the creation time of the current file or directory.

(Heredado de FileSystemInfo)
CreationTimeUtc

Obtiene o establece la hora de creación, en formato de hora universal coordinada (UTC), del archivo o directorio actual.Gets or sets the creation time, in coordinated universal time (UTC), of the current file or directory.

(Heredado de FileSystemInfo)
Exists

Obtiene un valor que indica si existe el directorio.Gets a value indicating whether the directory exists.

Extension

Obtiene la cadena que representa la extensión del archivo.Gets the string representing the extension part of the file.

(Heredado de FileSystemInfo)
FullName

Obtiene la ruta de acceso completa del directorio.Gets the full path of the directory.

LastAccessTime

Obtiene o establece la hora en la que se utilizó por última vez el archivo o directorio actual.Gets or sets the time the current file or directory was last accessed.

(Heredado de FileSystemInfo)
LastAccessTimeUtc

Obtiene o establece la hora, en formato de hora universal coordinada (UTC), a la que se produjo el último acceso al archivo o directorio actual.Gets or sets the time, in coordinated universal time (UTC), that the current file or directory was last accessed.

(Heredado de FileSystemInfo)
LastWriteTime

Obtiene o establece la hora en la que se escribió por última vez en el archivo o directorio actual.Gets or sets the time when the current file or directory was last written to.

(Heredado de FileSystemInfo)
LastWriteTimeUtc

Obtiene o establece la hora, en formato de hora universal coordinada (UTC), a la que se escribió por última vez en el archivo o directorio actual.Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to.

(Heredado de FileSystemInfo)
Name

Obtiene el nombre de esta instancia de DirectoryInfo.Gets the name of this DirectoryInfo instance.

Parent

Obtiene el directorio principal de un subdirectorio especificado.Gets the parent directory of a specified subdirectory.

Root

Obtiene la parte de la raíz del directorio.Gets the root portion of the directory.

Métodos

Create()

Crea un directorio.Creates a directory.

Create(DirectorySecurity)

Crea un directorio mediante un objeto DirectorySecurity.Creates a directory using a DirectorySecurity object.

CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Heredado de MarshalByRefObject)
CreateSubdirectory(String)

Crea uno o varios subdirectorios en la ruta de acceso especificada.Creates a subdirectory or subdirectories on the specified path. La ruta de acceso especificada puede ser relativa a esta instancia de la clase DirectoryInfo.The specified path can be relative to this instance of the DirectoryInfo class.

CreateSubdirectory(String, DirectorySecurity)

Crea uno o varios subdirectorios en la ruta de acceso especificada con la seguridad especificada.Creates a subdirectory or subdirectories on the specified path with the specified security. La ruta de acceso especificada puede ser relativa a esta instancia de la clase DirectoryInfo.The specified path can be relative to this instance of the DirectoryInfo class.

Delete()

Elimina este DirectoryInfo si está vacío.Deletes this DirectoryInfo if it is empty.

Delete(Boolean)

Elimina esta instancia de DirectoryInfo, especificando si se van a eliminar los subdirectorios y los archivos.Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files.

EnumerateDirectories()

Devuelve una colección enumerable de información de directorios del directorio actual.Returns an enumerable collection of directory information in the current directory.

EnumerateDirectories(String)

Devuelve una colección enumerable de información de directorios que coincide con un modelo de búsqueda especificado.Returns an enumerable collection of directory information that matches a specified search pattern.

EnumerateDirectories(String, EnumerationOptions)
EnumerateDirectories(String, SearchOption)

Devuelve una colección enumerable de información de directorios que coincide con un modelo de búsqueda y una opción de búsqueda en subdirectorios especificados.Returns an enumerable collection of directory information that matches a specified search pattern and search subdirectory option.

EnumerateFiles()

Devuelve una colección enumerable de información de archivos del directorio actual.Returns an enumerable collection of file information in the current directory.

EnumerateFiles(String)

Devuelve una colección enumerable de información de archivos que coincide con un modelo de búsqueda.Returns an enumerable collection of file information that matches a search pattern.

EnumerateFiles(String, EnumerationOptions)
EnumerateFiles(String, SearchOption)

Devuelve una colección enumerable de información de archivos que coincide con un modelo de búsqueda y una opción de búsqueda en subdirectorios especificados.Returns an enumerable collection of file information that matches a specified search pattern and search subdirectory option.

EnumerateFileSystemInfos()

Devuelve una colección enumerable de información del sistema de archivos del directorio actual.Returns an enumerable collection of file system information in the current directory.

EnumerateFileSystemInfos(String)

Devuelve una colección enumerable de información del sistema de archivos que coincide con un modelo de búsqueda especificado.Returns an enumerable collection of file system information that matches a specified search pattern.

EnumerateFileSystemInfos(String, EnumerationOptions)
EnumerateFileSystemInfos(String, SearchOption)

Devuelve una colección enumerable de información del sistema de archivos que coincide con un modelo de búsqueda y una opción de búsqueda en subdirectorios especificados.Returns an enumerable collection of file system information that matches a specified search pattern and search subdirectory option.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetAccessControl()

Obtiene un objeto DirectorySecurity que encapsula las entradas de la lista de control de acceso (ACL) del directorio descrito por el objeto DirectoryInfo actual.Gets a DirectorySecurity object that encapsulates the access control list (ACL) entries for the directory described by the current DirectoryInfo object.

GetAccessControl(AccessControlSections)

Obtiene un objeto DirectorySecurity que encapsula el tipo especificado de entradas de la lista de control de acceso (ACL) del directorio descrito por el objeto DirectoryInfo actual.Gets a DirectorySecurity object that encapsulates the specified type of access control list (ACL) entries for the directory described by the current DirectoryInfo object.

GetDirectories()

Devuelve los subdirectorios del directorio actual.Returns the subdirectories of the current directory.

GetDirectories(String)

Devuelve una matriz de directorios en el DirectoryInfo actual que coinciden con los criterios de búsqueda especificados.Returns an array of directories in the current DirectoryInfo matching the given search criteria.

GetDirectories(String, EnumerationOptions)
GetDirectories(String, SearchOption)

Devuelve una matriz de directorios en el DirectoryInfo actual aplicando los criterios de búsqueda dados y utilizando un valor para determinar si se busca en los subdirectorios.Returns an array of directories in the current DirectoryInfo matching the given search criteria and using a value to determine whether to search subdirectories.

GetFiles()

Devuelve una lista de archivos del directorio actual.Returns a file list from the current directory.

GetFiles(String)

Devuelve una lista de archivos del directorio actual que coinciden con el modelo de búsqueda.Returns a file list from the current directory matching the given search pattern.

GetFiles(String, EnumerationOptions)
GetFiles(String, SearchOption)

Devuelve una lista de archivos del directorio actual que coinciden con el modelo de búsqueda dado y utiliza un valor para determinar si se va a buscar en los subdirectorios.Returns a file list from the current directory matching the given search pattern and using a value to determine whether to search subdirectories.

GetFileSystemInfos()

Devuelve una matriz de entradas FileSystemInfo fuertemente tipadas que representan todos los archivos y subdirectorios de un directorio.Returns an array of strongly typed FileSystemInfo entries representing all the files and subdirectories in a directory.

GetFileSystemInfos(String)

Recupera una matriz de objetos FileSystemInfo fuertemente tipados que representan los archivos y subdirectorios que coinciden con los criterios de búsqueda especificados.Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search criteria.

GetFileSystemInfos(String, EnumerationOptions)
GetFileSystemInfos(String, SearchOption)

Recupera una matriz de objetos FileSystemInfo que representan los archivos y subdirectorios que coinciden con los criterios de búsqueda especificados.Retrieves an array of FileSystemInfo objects that represent the files and subdirectories matching the specified search criteria.

GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Heredado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Establece el objeto SerializationInfo con el nombre del archivo y la información adicional de la excepción.Sets the SerializationInfo object with the file name and additional exception information.

(Heredado de FileSystemInfo)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
InitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.Creates a shallow copy of the current MarshalByRefObject object.

(Heredado de MarshalByRefObject)
MoveTo(String)

Mueve una instancia de DirectoryInfo y su contenido a una nueva ruta de acceso.Moves a DirectoryInfo instance and its contents to a new path.

Refresh()

Actualiza el estado del objeto.Refreshes the state of the object.

(Heredado de FileSystemInfo)
SetAccessControl(DirectorySecurity)

Aplica las entradas de la lista de control de acceso (ACL) descritas por un objeto DirectorySecurity al directorio descrito por el objeto DirectoryInfo actual.Applies access control list (ACL) entries described by a DirectorySecurity object to the directory described by the current DirectoryInfo object.

ToString()

Devuelve la ruta de acceso original que se ha pasado al constructor DirectoryInfo.Returns the original path that was passed to the DirectoryInfo constructor. En lugar de este método, use las propiedades FullName o Name para la ruta de acceso completa o el nombre de archivo o directorio.Use the FullName or Name properties for the full path or file/directory name instead of this method.

Métodos de extensión

GetAccessControl(DirectoryInfo)
GetAccessControl(DirectoryInfo, AccessControlSections)
SetAccessControl(DirectoryInfo, DirectorySecurity)

Se aplica a

Consulte también: