Directory Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 de ter sido 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.
Para criar um diretório, use um dos CreateDirectory métodos .
Para excluir um diretório, use um dos Delete métodos .
Para obter ou definir o diretório atual para um aplicativo, use o GetCurrentDirectory método ou SetCurrentDirectory .
Para manipular DateTime informações relacionadas à criação, acesso e gravação de um diretório, use métodos como SetLastAccessTime e SetCreationTime.
Os métodos estáticos da Directory classe executam verificações de segurança em todos os métodos. Se você pretende reutilizar um objeto várias vezes, considere usar o método de instância correspondente de DirectoryInfo , pois o marcar de segurança nem sempre será necessário.
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 os 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 caminhos são 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 somente para um diretório específico, encerre a cadeia de caracteres de caminho com um ponto. (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 Acessando 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 já existam. |
CreateSymbolicLink(String, String) |
Cria um link simbólico de diretório identificado por |
CreateTempSubdirectory(String) |
Cria um diretório vazio e nomeado exclusivamente no diretório temporário do usuário atual. |
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. |