DirectoryInfo Classe

Definição

Expõe métodos de instância para criar, mover e enumerar através de diretórios e subdiretórios. Esta 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 seguinte demonstra alguns dos principais membros da DirectoryInfo turma.

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 seguinte demonstra como copiar um diretório e o 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

Observações

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

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

Note

Em membros que aceitam um caminho como cadeia de entrada, esse caminho deve estar bem formado ou é levantada uma exceção. Por exemplo, se um caminho for totalmente qualificado mas começar com um espaço, o caminho não é cortado nos métodos da classe. Portanto, o caminho está mal formado e é levantada uma exceção. De forma semelhante, um caminho ou uma combinação de caminhos não pode ser totalmente qualificado duas vezes. Por exemplo, "c:\temp c:\windows" também levanta uma exceção na maioria dos casos. Certifique-se de que os seus caminhos estão bem formados ao usar métodos que aceitam uma cadeia de caminho.

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

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

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

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

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

Por defeito, é concedido acesso total de leitura/escrita a novos diretórios a todos os utilizadores.

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

Construtores

Name Description
DirectoryInfo(String)

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

Campos

Name Description
FullPath

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

(Herdado de FileSystemInfo)
OriginalPath

O caminho originalmente especificado pelo utilizador, seja relativo ou absoluto.

(Herdado de FileSystemInfo)

Propriedades

Name Description
Attributes

Obtém ou define os atributos do ficheiro ou diretório atual.

(Herdado de FileSystemInfo)
CreationTime

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

(Herdado de FileSystemInfo)
CreationTimeUtc

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

(Herdado de FileSystemInfo)
Exists

Recebe um valor que indica se o diretório existe.

Extension

Recebe a parte de extensão do nome do ficheiro, incluindo o ponto . inicial mesmo que seja o nome completo do ficheiro, ou uma string vazia se não houver extensão.

(Herdado de FileSystemInfo)
FullName

Obtém o caminho completo do diretório.

FullName

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

(Herdado de FileSystemInfo)
LastAccessTime

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

(Herdado de FileSystemInfo)
LastAccessTimeUtc

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

(Herdado de FileSystemInfo)
LastWriteTime

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

(Herdado de FileSystemInfo)
LastWriteTimeUtc

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

(Herdado de FileSystemInfo)
Name

É assim que se dá nome a esta 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

Name Description
Create()

Cria um diretório.

Create(DirectorySecurity)

Cria um diretório usando um DirectorySecurity objeto.

CreateObjRef(Type)

Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para 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()

Apaga isto DirectoryInfo se estiver vazio.

Delete(Boolean)

Elimina esta instância de um DirectoryInfo, especificando se deve eliminar subdiretórios e ficheiros.

EnumerateDirectories()

Devolve uma coleção enumerável de informação do diretório no diretório atual.

EnumerateDirectories(String, EnumerationOptions)

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

EnumerateDirectories(String, SearchOption)

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

EnumerateDirectories(String)

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

EnumerateFiles()

Devolve uma coleção enumerável de informação de ficheiro no diretório atual.

EnumerateFiles(String, EnumerationOptions)

Devolve uma coleção enumerável de informação de ficheiro que corresponde ao padrão de pesquisa especificado e às opções de enumeração.

EnumerateFiles(String, SearchOption)

Devolve uma coleção enumerável de informação de ficheiro que corresponde a um padrão de pesquisa especificado e a opção de subdiretório de pesquisa.

EnumerateFiles(String)

Devolve uma coleção enumerável de informação de ficheiro que corresponde a um padrão de pesquisa.

EnumerateFileSystemInfos()

Devolve uma coleção enumerável de informação do sistema de ficheiros no diretório atual.

EnumerateFileSystemInfos(String, EnumerationOptions)

Devolve uma coleção enumerável de informação do sistema de ficheiros que corresponde ao padrão de pesquisa especificado e às opções de enumeração.

EnumerateFileSystemInfos(String, SearchOption)

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

EnumerateFileSystemInfos(String)

Devolve uma coleção enumerável de informação do sistema de ficheiros 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 da lista de controlo de acesso (ACL) para o diretório descrito pelo objeto atual DirectoryInfo .

GetAccessControl(AccessControlSections)

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

GetDirectories()

Devolve os subdiretórios do diretório atual.

GetDirectories(String, EnumerationOptions)

Devolve um array de diretórios no atual DirectoryInfo que corresponde ao padrão de pesquisa especificado e às opções de enumeração.

GetDirectories(String, SearchOption)

Devolve um array de diretórios na corrente DirectoryInfo que correspondem aos critérios de pesquisa dados e usam um valor para determinar se deve pesquisar subdiretórios.

GetDirectories(String)

Devolve um array de diretórios na corrente DirectoryInfo que correspondem aos critérios de pesquisa dados.

GetFiles()

Devolve uma lista de ficheiros do diretório atual.

GetFiles(String, EnumerationOptions)

Devolve uma lista de ficheiros do diretório atual que corresponde ao padrão de pesquisa especificado e às opções de enumeração.

GetFiles(String, SearchOption)

Devolve uma lista de ficheiros do diretório atual que corresponde ao padrão de pesquisa dado e utiliza um valor para determinar se deve pesquisar subdiretórios.

GetFiles(String)

Devolve uma lista de ficheiros do diretório atual que corresponde ao padrão de pesquisa indicado.

GetFileSystemInfos()

Devolve um array de entradas fortemente tipadas FileSystemInfo que representam todos os ficheiros e subdiretórios de um diretório.

GetFileSystemInfos(String, EnumerationOptions)

Recupera um array de objetos fortemente tipados FileSystemInfo que representam os ficheiros e subdiretórios que correspondem ao padrão de pesquisa especificado e às opções de enumeração.

GetFileSystemInfos(String, SearchOption)

Recupera um array de FileSystemInfo objetos que representam os ficheiros e subdiretórios que correspondem aos critérios de pesquisa especificados.

GetFileSystemInfos(String)

Recupera um array de objetos fortemente tipados FileSystemInfo que representam os ficheiros e subdiretórios que correspondem aos critérios de pesquisa especificados.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Define o SerializationInfo objeto com o nome do ficheiro 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-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(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 o seu conteúdo para um novo caminho.

Refresh()

Atualiza o estado do objeto.

(Herdado de FileSystemInfo)
SetAccessControl(DirectorySecurity)

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

ToString()

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

Aplica-se a

Ver também