DirectoryInfo Classe

Definição

Expõe métodos de instância para criar, mover e enumerar em diretórios e subdiretórios. Essa classe não pode ser herdada.

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
Herança
DirectoryInfo
Herança
Atributos

Exemplos

O exemplo a seguir demonstra alguns dos membros main da DirectoryInfo classe .

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 {}
    }
}
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

O exemplo a seguir demonstra como copiar um diretório e seu conteúdo.

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.
}
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

Comentários

Use a DirectoryInfo classe para operações típicas, como copiar, mover, renomear, criar e excluir diretórios.

Se você pretende reutilizar um objeto várias vezes, considere usar o método de instância de DirectoryInfo em vez dos métodos estáticos correspondentes da Directory classe, pois uma marcar de segurança nem sempre será necessária.

Observação

Em membros que aceitam um caminho como uma cadeia de caracteres de entrada, esse caminho deve ser bem formado ou uma exceção é gerada. Por exemplo, se um caminho for totalmente qualificado, mas começar com um espaço, o caminho não será cortado em métodos da classe . Portanto, o caminho está malformado e uma exceção é gerada. Da mesma forma, um caminho ou uma combinação de caminhos não pode ser totalmente qualificado duas vezes. Por exemplo, "c:\temp c:\windows" também gera uma exceção na maioria dos casos. Verifique se os caminhos estão bem formados ao usar métodos que aceitam uma cadeia de caracteres de caminho.

Em membros que aceitam um caminho, o caminho pode se referir a um arquivo ou apenas a um diretório. O caminho especificado também pode se referir a um caminho relativo ou a um caminho UNC (Convenção Universal de Nomenclatura) para um servidor e um nome de compartilhamento. Por exemplo, todos os seguintes caminhos são aceitáveis:

  • "c:\\MyDir\\MyFile.txt" em C#ou "c:\MyDir\MyFile.txt" no Visual Basic.

  • "c:\\MyDir" em C#ou "c:\MyDir" no Visual Basic.

  • "MyDir\\MySubdir" em C#ou "MyDir\MySubDir" no Visual Basic.

  • "\\\\MyServer\\MyShare" em C#ou "\\MyServer\MyShare" no Visual Basic.

Por padrão, o acesso completo de leitura/gravação a novos diretórios é concedido a todos os usuários.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Construtores

DirectoryInfo(String)

Inicializa uma nova instância da classe DirectoryInfo no caminho especificado.

Campos

FullPath

Representa o caminho totalmente qualificado do diretório ou arquivo.

(Herdado de FileSystemInfo)
OriginalPath

O caminho originalmente especificado pelo usuário, seja ele relativo ou absoluto.

(Herdado de FileSystemInfo)

Propriedades

Attributes

Obtém ou define os atributos para o arquivo ou diretório atual.

(Herdado de FileSystemInfo)
CreationTime

Obtém ou define a hora de criação do arquivo ou diretório atual.

(Herdado de FileSystemInfo)
CreationTimeUtc

Obtém ou define a hora de criação, em UTC (tempo universal coordenado), do arquivo ou diretório atual.

(Herdado de FileSystemInfo)
Exists

Obtém um valor que indica se o diretório existe.

Extension

Obtém a parte de extensão do nome do arquivo, incluindo o ponto . à esquerda, mesmo que seja o nome de arquivo inteiro ou uma cadeia de caracteres vazia se nenhuma extensão estiver presente.

(Herdado de FileSystemInfo)
FullName

Obtém o caminho completo do diretório.

FullName

Obtém o caminho completo do diretório ou arquivo.

(Herdado de FileSystemInfo)
LastAccessTime

Obtém ou define a hora em que o arquivo ou o diretório atual foi acessado pela última vez.

(Herdado de FileSystemInfo)
LastAccessTimeUtc

Obtém ou define a hora, no UTC (Tempo Universal Coordenado), em que o arquivo ou diretório atual foi acessado pela última vez.

(Herdado de FileSystemInfo)
LastWriteTime

Obtém ou define a hora em que o arquivo ou o diretório atual foi usado para gravação pela última vez.

(Herdado de FileSystemInfo)
LastWriteTimeUtc

Obtém ou define a hora, em UTC (Tempo Universal Coordenado), em que o arquivo ou diretório atual foi gravado pela última vez.

(Herdado de FileSystemInfo)
LinkTarget

Obtém o caminho de destino do link localizado em FullNameou null se essa FileSystemInfo instância não representa um link.

(Herdado de FileSystemInfo)
Name

Obtém o nome dessa instância DirectoryInfo.

Parent

Obtém o diretório pai de um subdiretório especificado.

Root

Obtém a parte da raiz do diretório.

UnixFileMode

Obtém ou define o modo de arquivo Unix para o arquivo ou diretório atual.

(Herdado de FileSystemInfo)

Métodos

Create()

Cria um diretório.

Create(DirectorySecurity)

Cria um diretório usando um objeto DirectorySecurity.

CreateAsSymbolicLink(String)

Cria um link simbólico localizado no FullName que aponta para o especificado pathToTarget.

(Herdado de FileSystemInfo)
CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
CreateSubdirectory(String)

Cria um subdiretório ou subdiretórios no caminho especificado. O caminho especificado pode ser relativo a esta instância da classe DirectoryInfo.

CreateSubdirectory(String, DirectorySecurity)

Cria um subdiretório ou subdiretórios no caminho especificado com a segurança especificada. O caminho especificado pode ser relativo a esta instância da classe DirectoryInfo.

Delete()

Exclui DirectoryInfo se estiver vazia.

Delete(Boolean)

Exclui essa instância de um DirectoryInfo, especificando se as subpastas e os arquivos serão excluídos.

EnumerateDirectories()

Retorna uma coleção enumerável de informações de diretório no diretório atual.

EnumerateDirectories(String)

Retorna uma coleção enumerável de informações do diretório que correspondem a um padrão de pesquisa especificado.

EnumerateDirectories(String, EnumerationOptions)

Retorna uma coleção enumerável de informações de diretório que correspondem às opções especificadas de padrão de pesquisa e enumeração.

EnumerateDirectories(String, SearchOption)

Retorna uma coleção enumerável de informações de diretório que correspondem a uma opção especificada de subdiretório de pesquisa e padrão de pesquisa.

EnumerateFiles()

Retorna uma coleção enumerável de informações de arquivo no diretório atual.

EnumerateFiles(String)

Retorna uma coleção enumerável de informações de arquivo que correspondem a um padrão de pesquisa.

EnumerateFiles(String, EnumerationOptions)

Retorna uma coleção enumerável de informações de arquivo que correspondem às opções especificadas de padrão de pesquisa e enumeração.

EnumerateFiles(String, SearchOption)

Retorna uma coleção enumerável de informações de arquivo que correspondem a um padrão de pesquisa especificado e uma opção de subdiretório de pesquisa.

EnumerateFileSystemInfos()

Retorna uma coleção enumerável de informações do sistema de arquivos no diretório atual.

EnumerateFileSystemInfos(String)

Retorna uma coleção enumerável de informações do sistema de arquivos que correspondem a um padrão de pesquisa especificado.

EnumerateFileSystemInfos(String, EnumerationOptions)

Retorna uma coleção enumerável de informações de arquivo que correspondem às opções especificadas de padrão de pesquisa e enumeração.

EnumerateFileSystemInfos(String, SearchOption)

Retorna uma coleção enumerável de informações do sistema de arquivos que corresponde a um padrão de pesquisa especificado e a uma opção de subdiretório de pesquisa.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetAccessControl()

Obtém um objeto DirectorySecurity que encapsula as entradas de ACL (lista de controle de acesso) do diretório descrito pelo objeto DirectoryInfo atual.

GetAccessControl(AccessControlSections)

Obtém um objeto DirectorySecurity que encapsula o tipo especificado de entradas de ACL (lista de controle de acesso) do diretório descrito pelo objeto DirectoryInfo atual.

GetDirectories()

Retorna os subdiretórios do diretório atual.

GetDirectories(String)

Retorna uma matriz de diretórios no DirectoryInfo atual que correspondem aos critérios de pesquisa fornecidos.

GetDirectories(String, EnumerationOptions)

Retorna uma matriz de diretórios no DirectoryInfo atual que corresponde às opções especificadas de padrão de pesquisa e enumeração.

GetDirectories(String, SearchOption)

Retorna uma matriz de diretórios da DirectoryInfo atual correspondendo aos critérios de pesquisa dados e usando um valor para determinar se deve pesquisar os subdiretórios.

GetFiles()

Retorna uma lista de arquivos do diretório atual.

GetFiles(String)

Retorna uma lista de arquivos do diretório atual correspondentes ao padrão de pesquisa fornecido.

GetFiles(String, EnumerationOptions)

Retorna uma lista de arquivos do diretório atual que correspondem às opções especificadas de padrão de pesquisa e enumeração.

GetFiles(String, SearchOption)

Retorna uma lista de arquivos do diretório atual correspondentes ao padrão de pesquisa fornecido e que usam um valor para determinar se as subpastas serão pesquisadas.

GetFileSystemInfos()

Retorna uma matriz de entradas FileSystemInfo fortemente tipadas que representa todos os arquivos e os subdiretórios em um diretório.

GetFileSystemInfos(String)

Recupera uma matriz de objetos FileSystemInfo fortemente tipados que representam os arquivos e subdiretórios que correspondem aos critérios de pesquisa especificados.

GetFileSystemInfos(String, EnumerationOptions)

Recupera uma matriz de objetos FileSystemInfo fortemente tipados que representam os arquivos e subdiretórios que correspondem às opções especificadas de padrão de pesquisa e enumeração.

GetFileSystemInfos(String, SearchOption)

Recupera uma matriz de objetos FileSystemInfo que representam os arquivos e subdiretórios que correspondem aos critérios de pesquisa especificados.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Obsoleto.

Define o objeto SerializationInfo com o nome do arquivo e informações adicionais de exceção.

(Herdado de FileSystemInfo)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
MoveTo(String)

Move uma instância DirectoryInfo e seu conteúdo para um novo caminho.

Refresh()

Atualiza o estado do objeto.

(Herdado de FileSystemInfo)
ResolveLinkTarget(Boolean)

Obtém o destino do link especificado.

(Herdado de FileSystemInfo)
SetAccessControl(DirectorySecurity)

Aplica-se a entradas ACL (Lista de Controle de Acesso) descritas por um objeto DirectorySecurity para o diretório descrito pelo objeto DirectoryInfo atual.

ToString()

Retorna o caminho original passado para o construtor DirectoryInfo. Use as propriedades FullName ou Name para obter o caminho completo ou o nome do arquivo/diretório em vez deste método.

ToString()

Retorna o caminho original. Use as propriedades FullName ou Name para o caminho completo ou o nome do arquivo/do diretório.

(Herdado de FileSystemInfo)

Métodos de Extensão

Create(DirectoryInfo, DirectorySecurity)

Cria um diretório, garantindo que ele seja criado com a segurança de diretório especificada. Se o diretório já existir, nenhuma ação será executada.

GetAccessControl(DirectoryInfo)

Retorna as informações de segurança de um diretório.

GetAccessControl(DirectoryInfo, AccessControlSections)

Retorna as informações de segurança de um diretório.

SetAccessControl(DirectoryInfo, DirectorySecurity)

Altera os atributos de segurança de um diretório existente.

Aplica-se a

Confira também