DirectoryInfo Classe

Definição

Expõe métodos de instância para criar, mover e enumerar por meio de 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 principais membros da DirectoryInfo classe.

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))
        {
            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ê vai reutilizar um objeto várias vezes, considere usar o método de DirectoryInfo instância em vez dos métodos estáticos correspondentes da Directory classe, pois nem sempre uma verificação de segurança será necessária.

Note

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 é 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 são caminhos 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

Nome Description
DirectoryInfo(String)

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

Campos

Nome Description
FullPath

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

(Herdado de FileSystemInfo)
OriginalPath

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

(Herdado de FileSystemInfo)

Propriedades

Nome Description
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 o tempo 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 do 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 diretório atual foi acessado pela última vez.

(Herdado de FileSystemInfo)
LastAccessTimeUtc

Obtém ou define a hora, em 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 diretório atual foi gravado pela última vez.

(Herdado de FileSystemInfo)
LastWriteTimeUtc

Obtém ou define a hora, em UTC (tempo universal coordenado), quando o arquivo ou diretório atual foi gravado pela última vez.

(Herdado de FileSystemInfo)
Name

Obtém o nome dessa DirectoryInfo instância.

Parent

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

Root

Obtém a parte raiz do diretório.

Métodos

Nome Description
Create()

Cria um diretório.

Create(DirectorySecurity)

Cria um diretório usando um DirectorySecurity objeto.

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, 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 DirectoryInfo classe.

CreateSubdirectory(String)

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

Delete()

Exclui isso DirectoryInfo se estiver vazio.

Delete(Boolean)

Exclui essa instância de um DirectoryInfo, especificando se os subdiretórios e arquivos devem ser excluídos.

EnumerateDirectories()

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

EnumerateDirectories(String, EnumerationOptions)

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

EnumerateDirectories(String, SearchOption)

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

EnumerateDirectories(String)

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

EnumerateFiles()

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

EnumerateFiles(String, EnumerationOptions)

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

EnumerateFiles(String, SearchOption)

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

EnumerateFiles(String)

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

EnumerateFileSystemInfos()

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

EnumerateFileSystemInfos(String, EnumerationOptions)

Retorna uma coleção enumerável de informações do sistema de arquivos que corresponde às opções de enumeração e padrão de pesquisa especificados.

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 uma opção de subdiretório de pesquisa.

EnumerateFileSystemInfos(String)

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

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetAccessControl()

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

GetAccessControl(AccessControlSections)

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

GetDirectories()

Retorna os subdiretórios do diretório atual.

GetDirectories(String, EnumerationOptions)

Retorna uma matriz de diretórios na correspondência atual DirectoryInfo das opções de enumeração e padrão de pesquisa especificadas.

GetDirectories(String, SearchOption)

Retorna uma matriz de diretórios no atual DirectoryInfo que corresponde aos critérios de pesquisa fornecidos e usando um valor para determinar se os subdiretórios devem ser pesquisados.

GetDirectories(String)

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

GetFiles()

Retorna uma lista de arquivos do diretório atual.

GetFiles(String, EnumerationOptions)

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

GetFiles(String, SearchOption)

Retorna uma lista de arquivos do diretório atual que corresponde ao padrão de pesquisa fornecido e usa um valor para determinar se os subdiretórios devem ser pesquisados.

GetFiles(String)

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

GetFileSystemInfos()

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

GetFileSystemInfos(String, EnumerationOptions)

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

GetFileSystemInfos(String, SearchOption)

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

GetFileSystemInfos(String)

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

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetLifetimeService()

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

(Herdado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Define o SerializationInfo objeto 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()

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

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
MoveTo(String)

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

Refresh()

Atualiza o estado do objeto.

(Herdado de FileSystemInfo)
SetAccessControl(DirectorySecurity)

Aplica entradas acl (lista de controle de acesso) descritas por um DirectorySecurity objeto ao diretório descrito pelo objeto atual DirectoryInfo .

ToString()

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

Aplica-se a

Confira também