Directory Classe

Definição

Expõe métodos estáticos para criar, mover e enumerar em diretórios e subdiretórios. Essa 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 a seguir mostra como recuperar todos os arquivos de texto de um diretório e movê-los para um novo diretório. Depois que os arquivos são movidos, eles não existem mais no diretório original.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            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

Module Module1

    Sub Main()
        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 Module

O exemplo a seguir demonstra como usar o EnumerateFiles método para recuperar uma coleção de arquivos de texto de um diretório e, em seguida, usar essa coleção em uma consulta para localizar todas as linhas que contêm "Exemplo".

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

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            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

Module Module1

    Sub Main()
        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 Module

O exemplo a seguir demonstra como mover um diretório e todos os seus arquivos para um novo diretório. O diretório original não existe mais depois que ele foi movido.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            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

Module Module1

    Sub Main()
        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 Module

Comentários

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

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

Se você estiver executando apenas uma ação relacionada ao diretório, talvez seja mais eficiente usar um método estático Directory em vez de um método de instância correspondente DirectoryInfo . A maioria dos Directory métodos exige o caminho para o diretório que você está manipulando.

Observação

Em membros que aceitam um parâmetro de cadeia path de caracteres, 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 (" c:\temp"), a cadeia de caracteres do caminho não será cortada, portanto, o caminho será considerado malformado e uma exceção será gerada. 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 gera uma exceção. Verifique se seus caminhos estão bem formados ao usar métodos que aceitam uma cadeia de caracteres de caminho. Para obter mais informações, consulte Path.

Em membros que aceitam um caminho, o caminho pode se referir a um arquivo ou a um diretório. Você pode usar um caminho completo, um caminho relativo ou 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" 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. No entanto, o aplicativo deve ter a segurança correta para acessar diretórios existentes.

Para exigir permissões para um diretório e todos os seus subdiretórios, encerre a cadeia de caracteres de caminho com o caractere 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 caracteres de caminho com um período. (Por exemplo, "C:\Temp\". concede acesso somente a C:\Temp\, não a seus subdiretórios.)

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

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

Directory e DirectoryInfo não têm suporte para uso em aplicativos da Windows Store. Para obter informações sobre como acessar arquivos e pastas em aplicativos da Windows Store, consulte Acessar dados e arquivos (aplicativos da Windows Store).

Métodos

CreateDirectory(String)

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

CreateDirectory(String, DirectorySecurity)

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

CreateDirectory(String, UnixFileMode)

Cria todos os diretórios e subdiretórios no caminho especificado com as permissões especificadas, a menos que elas já existam.

CreateSymbolicLink(String, String)

Cria um link simbólico de diretório identificado por path isso aponta para pathToTarget.

Delete(String)

Exclui um diretório vazio de um caminho especificado.

Delete(String, Boolean)

Exclui o diretório especificado e, se indicado, todos os subdiretórios e arquivos no diretório.

EnumerateDirectories(String)

Retorna uma coleção enumerável de nomes completos de diretório em um caminho especificado.

EnumerateDirectories(String, String)

Retorna uma coleção enumerável de nomes completos de diretório que correspondem a um padrão de pesquisa em um caminho especificado.

EnumerateDirectories(String, String, EnumerationOptions)

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

EnumerateDirectories(String, String, SearchOption)

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

EnumerateFiles(String)

Retorna uma coleção enumerável de nomes completos de arquivo em um caminho especificado.

EnumerateFiles(String, String)

Retorna uma coleção enumerável de nomes completos de arquivo que correspondem a um padrão de pesquisa em um caminho especificado.

EnumerateFiles(String, String, EnumerationOptions)

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

EnumerateFiles(String, String, SearchOption)

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

EnumerateFileSystemEntries(String)

Retorna uma coleção enumerável de nomes de arquivo e de diretório em um caminho especificado.

EnumerateFileSystemEntries(String, String)

Retorna uma coleção enumerável de nomes de arquivo e nomes de diretório que correspondem a um padrão de pesquisa em um caminho especificado.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Retorna uma coleção enumerável de nomes de arquivo e nomes de diretório que correspondem a um padrão de pesquisa e a opções de enumeração em um caminho especificado.

EnumerateFileSystemEntries(String, String, SearchOption)

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

Exists(String)

Determina se o caminho especificado se refere a um diretório existente em disco.

GetAccessControl(String)

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

GetAccessControl(String, AccessControlSections)

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

GetCreationTime(String)

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

GetCreationTimeUtc(String)

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

GetCurrentDirectory()

Obtém o diretório de trabalho atual do aplicativo.

GetDirectories(String)

Retorna os nomes de subdiretórios (inclusive os caminhos) no diretório especificado.

GetDirectories(String, String)

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

GetDirectories(String, String, EnumerationOptions)

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

GetDirectories(String, String, SearchOption)

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

GetDirectoryRoot(String)

Retorna as informações de volume, raiz ou ambas para o caminho especificado.

GetFiles(String)

Retorna os nomes de arquivos (inclusive os caminhos) no diretório especificado.

GetFiles(String, String)

Retorna os nomes de arquivo (incluindo os caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado.

GetFiles(String, String, EnumerationOptions)

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

GetFiles(String, String, SearchOption)

Retorna os nomes de arquivo (incluindo os caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado, usando um valor para determinar se as subpastas devem ser pesquisadas.

GetFileSystemEntries(String)

Retorna os nomes de todos os arquivos e subdiretórios em um caminho especificado.

GetFileSystemEntries(String, String)

Retorna uma matriz de nomes de arquivo e nomes de diretório que correspondem a um padrão de pesquisa em um caminho especificado.

GetFileSystemEntries(String, String, EnumerationOptions)

Retorna uma matriz de nomes de arquivo e nomes de diretório que correspondem a um padrão de pesquisa e a opções de enumeração em um caminho especificado.

GetFileSystemEntries(String, String, SearchOption)

Retorna uma matriz de todos os nomes de arquivo e nomes de diretórios que correspondem a um padrão de pesquisa em um caminho especificado e, opcionalmente, pesquisa subdiretórios.

GetLastAccessTime(String)

Retorna a data e hora em que o arquivo ou o diretório foi acessado pela última vez.

GetLastAccessTimeUtc(String)

Retorna a data e hora, no formato UTC (Tempo Universal Coordenado), em que o arquivo ou diretório especificado foi acessado pela última vez.

GetLastWriteTime(String)

Retorna a data e hora em que o arquivo ou diretório especificado foi usado para gravação pela última vez.

GetLastWriteTimeUtc(String)

Retorna a data e hora, no formato UTC (Tempo Universal Coordenado), em que o arquivo ou diretório especificado foi gravado pela última vez.

GetLogicalDrives()

Recupera os nomes das unidades lógicas neste computador no formato "<letra da unidade>:\".

GetParent(String)

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

Move(String, String)

Move um arquivo ou um diretório e seu conteúdo para um novo local.

ResolveLinkTarget(String, Boolean)

Obtém o destino do link de diretório especificado.

SetAccessControl(String, DirectorySecurity)

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

SetCreationTime(String, DateTime)

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

SetCreationTimeUtc(String, DateTime)

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

SetCurrentDirectory(String)

Define o atual diretório de trabalho do aplicativo como o diretório especificado.

SetLastAccessTime(String, DateTime)

Define a data e hora em que o arquivo ou o diretório foi acessado pela última vez.

SetLastAccessTimeUtc(String, DateTime)

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

SetLastWriteTime(String, DateTime)

Define a data e hora em que um diretório foi usado para gravação pela última vez.

SetLastWriteTimeUtc(String, DateTime)

Define a data e hora, no formato UTC (Tempo Universal Coordenado), em que o diretório foi gravado pela última vez.

Aplica-se a

Confira também