Directory Classe

Definição

Expõe métodos estáticos para criar, mover e enumerar através de diretórios e subdiretórios. Esta classe não pode ser herdada.

public ref class Directory abstract sealed
public ref class Directory sealed
public static class Directory
public sealed class Directory
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
Herança
Directory
Atributos

Exemplos

O exemplo seguinte mostra como recuperar todos os ficheiros de texto de um diretório e movê-los para um novo diretório. Depois de os ficheiros serem movidos, deixam de existir no diretório original.

using System;
using System.IO;

partial class Example1
{
    static void TwoStringsExample()
    {
        string sourceDirectory = @"C:\current";
        string archiveDirectory = @"C:\archive";

        try
        {
            var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

            foreach (string currentFile in txtFiles)
            {
                string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))

with e ->
    printfn $"{e.Message}"
Imports System.IO

Partial Class Example1
    Shared Sub TwoStringExample()

        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub
End Class

O exemplo seguinte demonstra como usar o EnumerateFiles método para recuperar uma coleção de ficheiros de texto de um diretório e depois usar essa coleção numa consulta para encontrar todas as linhas que contêm "Exemplo".

using System;
using System.IO;
using System.Linq;

partial class Program
{
    static void EnumerateFilesExample()
    {
        string archiveDirectory = @"C:\archive";

        var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    from line in File.ReadLines(retrievedFile)
                    where line.Contains("Example")
                    select new
                    {
                        File = retrievedFile,
                        Line = line
                    };

        foreach (var f in files)
        {
            Console.WriteLine("{0} contains {1}", f.File, f.Line);
        }

        Console.WriteLine("{0} lines found.", files.Count().ToString());
    }
}
open System.IO

let archiveDirectory = @"C:\archive"

let files = 
    query {
        for retrivedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) do
        for line in File.ReadLines retrivedFile do
        where (line.Contains "file") 
        select 
            {| File = retrivedFile 
               Line = line |}
    }

for f in files do
    printfn $"{f.File} contains {f.Line}"
printfn "{Seq.length files} lines found."
Imports System.IO

Partial Class Program
    Shared Sub EnumerateFilesExample()

        Dim archiveDirectory As String = "C:\archive"

        Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    From line In File.ReadLines(retrievedFile)
                    Where line.Contains("Example")
                    Select New With {.curFile = retrievedFile, .curLine = line}

        For Each f In files
            Console.WriteLine("{0} contains {1}", f.curFile, f.curLine)
        Next
        Console.WriteLine("{0} lines found.", files.Count.ToString())

    End Sub
End Class

O exemplo seguinte demonstra como mover um diretório e todos os seus ficheiros para um novo diretório. O diretório original deixa de existir depois de ter sido movido.

using System;
using System.IO;

partial class Program
{
    static void DirectoryMoveExample()
    {
        string sourceDirectory = @"C:\source";
        string destinationDirectory = @"C:\destination";

        try
        {
            Directory.Move(sourceDirectory, destinationDirectory);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
open System.IO

let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"

try
    Directory.Move(sourceDirectory, destinationDirectory)
with e ->
    printfn $"{e.Message}"
Imports System.IO

Partial Class Program
    Shared Sub DirectoryMoveExample()

        Dim sourceDirectory As String = "C:\source"
        Dim destinationDirectory As String = "C:\destination"

        Try
            Directory.Move(sourceDirectory, destinationDirectory)
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub
End Class

Observações

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

Os métodos estáticos da Directory classe realizam verificações de segurança em todos os métodos. Se for reutilizar um objeto várias vezes, considere usar o método de instância correspondente, DirectoryInfo pois a verificação de segurança nem sempre será necessária.

Se estiver a realizar apenas uma ação relacionada com diretórios, pode ser mais eficiente usar um método estático Directory em vez de um método de instância correspondente DirectoryInfo . A maioria Directory dos métodos requer o caminho para o diretório que estás a manipular.

Note

Em membros que aceitam um parâmetro de string path , esse caminho deve estar bem formado ou é criada uma exceção. Por exemplo, se um caminho for totalmente qualificado mas começar com um espaço (" c:\temp"), a cadeia de caminho não é aparada, pelo que o caminho é considerado malformado e uma exceção é levantada. Além disso, 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. Certifique-se de que os seus caminhos estão bem formados ao usar métodos que aceitam uma cadeia de caminho. Para obter mais informações, consulte Path.

Nos membros que aceitam um caminho, o caminho pode referir-se a um ficheiro ou diretório. Pode usar um caminho completo, um caminho relativo ou um caminho de Convenção de Nomes Universal (UNC) para um nome de servidor e partilha. Por exemplo, todos os seguintes são caminhos aceitáveis:

  • "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. No entanto, a aplicação deve ter a segurança correta para aceder a diretórios existentes.

Para exigir permissões para um diretório e todos os seus subdiretórios, termine a cadeia de caminho com o carácter separador de diretório. (Por exemplo, "C:\Temp\" concede acesso a C:\Temp\ e a todos os seus subdiretórios.) Para exigir permissões apenas para um diretório específico, termine a cadeia de caminho com um ponto. (Por exemplo, "C:\Temp\." concede acesso apenas a C:\Temp\, não aos seus subdiretórios.)

Em membros que aceitam um searchPattern parâmetro, a cadeia de pesquisa pode ser qualquer combinação de caracteres literais e dois caracteres curinga; * e ?. Este parâmetro não reconhece expressões regulares. Para mais informações, consulte o EnumerateDirectories(String, String) método ou qualquer outro método que utilize o searchPattern parâmetro.

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

Directory e DirectoryInfo não são suportados para uso em aplicações Windows Store. Para informações sobre como aceder a ficheiros e pastas nas aplicações Windows Store, veja Aceder a dados e ficheiros (Windows aplicações da Store).

Métodos

Name Description
CreateDirectory(String, DirectorySecurity)

Cria todos os diretórios no caminho especificado, a menos que já existam, aplicando a segurança do Windows especificada.

CreateDirectory(String)

Cria todos os diretórios e subdiretórios no caminho especificado, a menos que já existam.

Delete(String, Boolean)

Elimina o diretório especificado e, se indicado, quaisquer subdiretórios e ficheiros no diretório.

Delete(String)

Apaga um diretório vazio de um caminho especificado.

EnumerateDirectories(String, String, EnumerationOptions)

Devolve uma coleção enumerável dos nomes completos dos diretórios que correspondem a um padrão de pesquisa num caminho especificado e, opcionalmente, pesquisa subdiretórios.

EnumerateDirectories(String, String, SearchOption)

Devolve uma coleção enumerável de nomes completos de diretórios que correspondem a um padrão de pesquisa num caminho especificado e, opcionalmente, pesquisa em subdiretórios.

EnumerateDirectories(String, String)

Devolve uma coleção enumerável de nomes completos de diretórios que correspondem a um padrão de pesquisa num caminho especificado.

EnumerateDirectories(String)

Devolve uma coleção enumerável de nomes completos de diretórios num caminho especificado.

EnumerateFiles(String, String, EnumerationOptions)

Devolve uma coleção enumerável de nomes completos de ficheiros que correspondem a um padrão de pesquisa e opções de enumeração num caminho especificado, e opcionalmente pesquisa subdiretórios.

EnumerateFiles(String, String, SearchOption)

Devolve uma coleção enumerável de nomes completos de ficheiros que correspondem a um padrão de pesquisa num caminho especificado e, opcionalmente, pesquisa subdiretórios.

EnumerateFiles(String, String)

Devolve uma coleção enumerável de nomes completos de ficheiros que correspondem a um padrão de pesquisa num caminho especificado.

EnumerateFiles(String)

Devolve uma coleção enumerável de nomes completos de ficheiros num caminho especificado.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Devolve uma coleção enumerável de nomes de ficheiros e diretórios que correspondem a um padrão de pesquisa e opções de enumeração num caminho especificado.

EnumerateFileSystemEntries(String, String, SearchOption)

Devolve uma coleção enumerável de nomes de ficheiros e nomes de diretórios que correspondem a um padrão de pesquisa num caminho especificado, e opcionalmente pesquisa em subdiretórios.

EnumerateFileSystemEntries(String, String)

Devolve uma coleção enumerável de nomes de ficheiros e nomes de diretórios que correspondem a um padrão de pesquisa num caminho especificado.

EnumerateFileSystemEntries(String)

Devolve uma coleção enumerável de nomes de ficheiros e nomes de diretórios num caminho especificado.

Exists(String)

Determina se o caminho dado se refere a um diretório existente no disco.

GetAccessControl(String, AccessControlSections)

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

GetAccessControl(String)

Obtém um DirectorySecurity objeto que encapsula as entradas da lista de controlo de acesso (ACL) para um diretório especificado.

GetCreationTime(String)

Obtém a data e hora de criação de um diretório.

GetCreationTimeUtc(String)

Obtém a data e hora de criação, em formato de Tempo Universal Coordenado (UTC), de um diretório.

GetCurrentDirectory()

Obtém o diretório funcional atual da aplicação.

GetDirectories(String, String, EnumerationOptions)

Devolve os nomes dos subdiretórios (incluindo os seus caminhos) que correspondem ao padrão de pesquisa especificado e às opções de enumeração no diretório especificado.

GetDirectories(String, String, SearchOption)

Devolve os nomes dos subdiretórios (incluindo os seus caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado e, opcionalmente, pesquisa nos subdiretórios.

GetDirectories(String, String)

Devolve os nomes dos subdiretórios (incluindo os seus caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado.

GetDirectories(String)

Devolve os nomes dos subdiretórios (incluindo os seus caminhos) no diretório especificado.

GetDirectoryRoot(String)

Devolve a informação de volume, a informação raiz ou ambas para o caminho especificado.

GetFiles(String, String, EnumerationOptions)

Devolve os nomes dos ficheiros (incluindo os seus caminhos) que correspondem ao padrão de pesquisa especificado e às opções de enumeração no diretório especificado.

GetFiles(String, String, SearchOption)

Devolve os nomes dos ficheiros (incluindo os seus caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado, usando um valor para determinar se deve pesquisar nos subdiretórios.

GetFiles(String, String)

Devolve os nomes dos ficheiros (incluindo os seus caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado.

GetFiles(String)

Devolve os nomes dos ficheiros (incluindo os seus caminhos) no diretório especificado.

GetFileSystemEntries(String, String, EnumerationOptions)

Devolve um array de nomes de ficheiros e diretórios que correspondem a um padrão de pesquisa e opções de enumeração num caminho especificado.

GetFileSystemEntries(String, String, SearchOption)

Devolve um array com todos os nomes de ficheiros e diretórios que correspondem a um padrão de pesquisa num caminho especificado, e opcionalmente pesquisa em subdiretórios.

GetFileSystemEntries(String, String)

Devolve um array de nomes de ficheiros e diretórios que correspondem a um padrão de pesquisa num caminho especificado.

GetFileSystemEntries(String)

Devolve os nomes de todos os ficheiros e subdiretórios num caminho especificado.

GetLastAccessTime(String)

Devolve a data e hora em que o ficheiro ou diretório especificado foi acedido pela última vez.

GetLastAccessTimeUtc(String)

Devolve a data e hora, em formato de Tempo Universal Coordenado (UTC), em que o ficheiro ou diretório especificado foi acedido pela última vez.

GetLastWriteTime(String)

Devolve a data e hora em que o ficheiro ou diretório especificado foi escrito pela última vez.

GetLastWriteTimeUtc(String)

Devolve a data e hora, em formato de Tempo Universal Coordenado (UTC), em que o ficheiro ou diretório especificado foi escrito pela última vez.

GetLogicalDrives()

Recupera os nomes dos discos lógicos neste computador.

GetParent(String)

Recupera o diretório pai do caminho especificado, incluindo caminhos absolutos e relativos.

Move(String, String)

Move um ficheiro ou diretório e o seu conteúdo para uma nova localização.

SetAccessControl(String, DirectorySecurity)

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

SetCreationTime(String, DateTime)

Define a data e hora de criação para o ficheiro ou diretório especificado.

SetCreationTimeUtc(String, DateTime)

Define a data e hora de criação, em formato de Tempo Universal Coordenado (UTC), para o ficheiro ou diretório especificado.

SetCurrentDirectory(String)

Define o diretório de trabalho atual da aplicação para o diretório especificado.

SetLastAccessTime(String, DateTime)

Define a data e hora em que o ficheiro ou diretório especificado foi acedido pela última vez.

SetLastAccessTimeUtc(String, DateTime)

Define a data e a hora, em formato de Tempo Universal Coordenado (UTC), em que o ficheiro ou diretório especificado foi acedido pela última vez.

SetLastWriteTime(String, DateTime)

Define a data e hora em que um diretório foi escrito pela última vez.

SetLastWriteTimeUtc(String, DateTime)

Define a data e hora, em formato de Tempo Universal Coordenado (UTC), onde um diretório foi escrito pela última vez.

Aplica-se a

Ver também