English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Arquivos e Diretórios do C#

O C# fornece as seguintes classes para o sistema de arquivos. Elas podem ser usadas para acessar diretórios, acessar arquivos, abrir arquivos para leitura ou escrita, criar novos arquivos ou mover arquivos de um local para outro, etc.

Nome da classeUso
FileFile é uma classe estática que fornece várias funcionalidades, como copiar, criar, mover, excluir, abrir para leitura ou escrita, criptografar ou descriptografar, verificar se o arquivo existe, adicionar linhas ou texto no conteúdo do arquivo, obter a última data de acesso, etc.
FileInfoA classe FileInfo fornece as mesmas funcionalidades que a classe estática File. Ao escrever manualmente código para ler ou escrever bytes do arquivo, você pode controlar melhor a leitura e escrita do arquivo./Operações de escrita.
DirectoryO diretório é uma classe estática que fornece funcionalidades para criar, mover, excluir e acessar subdiretórios.  
DirectoryInfoDirectoryInfo fornece métodos de instância para criar, mover, excluir e acessar subdiretórios.  
PathPath é uma classe estática que fornece algumas funcionalidades, como recuperar a extensão do arquivo, alterar a extensão do arquivo, recuperar o caminho físico absoluto e outras funcionalidades relacionadas ao caminho.

Arquivo(File)

O C# inclui a classe estática File, usada para executar i/Operações. A classe estática File inclui várias métodos úteis, que podem interagir com qualquer tipo de arquivo físico (como arquivos binários, arquivos de texto, etc.).

Use a classe estática File para executar algumas operações rápidas em arquivos físicos. Por razões de desempenho, não é recomendado usar a classe File para várias operações em vários arquivos. Neste caso, use a classe FileInfo.

Métodos importantes da classe estática File

MétodoUso
AppendAllLinesAnexar uma linha ao arquivo e fechar o arquivo. Se o arquivo especificado não existir, este método criará um arquivo, escreverá a linha especificada no arquivo e fechará o arquivo.
AppendAllTextAbrir um arquivo, anexar a string especificada ao arquivo e fechar o arquivo. Se o arquivo não existir, este método criará um arquivo, escreverá a string especificada no arquivo e fechará o arquivo.
AppendTextCriar um StreamWriter, que escreverá UTF-8Anexar o texto codificado ao arquivo existente, ou, se o arquivo especificado não existir, anexar ao novo arquivo.
CopyCopiar o arquivo existente para um novo arquivo. Não é permitido sobrescrever arquivos com o mesmo nome.
CreateCriar ou sobrescrever um arquivo no caminho especificado.
CreateTextCriar ou abrir um arquivo para escrever UTF-8O arquivo de texto codificado.
DescifrarUse o método Encrypt para descriptografar o arquivo criptografado pelo usuário atual.
DeleteExclua o arquivo especificado.
EncryptCriptografe o arquivo, para que apenas a conta usada para criptografar o arquivo possa descriptografar o arquivo.
ExistsDetermine se o arquivo especificado existe.
GetAccessControlObtenha um objeto FileSecurity, que encapsula a entrada da lista de controle de acesso (ACL) do arquivo especificado.
MoveMova o arquivo especificado para uma nova localização e forneça a opção de nome de arquivo novo.
OpenNo arquivo com leitura/Abra um FileStream na especificada caminho de acesso ao arquivo.
ReadAllBytesAbra um arquivo binário, leia o conteúdo do arquivo para um array de bytes e feche o arquivo.
ReadAllLinesAbra um arquivo de texto, leia todas as linhas do arquivo e feche o arquivo.
ReadAllTextAbra um arquivo de texto, leia todas as linhas do arquivo e feche o arquivo.
ReplaceSubstitua o conteúdo do arquivo especificado pelo conteúdo de outro arquivo, exclua o arquivo original e crie uma cópia de backup do arquivo substituído.
WriteAllBytesCrie um novo arquivo, escreva o array de bytes especificado no arquivo e feche o arquivo. Se o arquivo de destino já existir, substitua-o.
WriteAllLinesCrie um novo arquivo, escreva o conjunto de strings no arquivo e feche o arquivo.
WriteAllTextCrie um novo arquivo, escreva a string especificada no arquivo e feche o arquivo. Se o arquivo de destino já existir, substitua-o.

Anexar linhas de texto

Use o método AppendAllLines () para adicionar múltiplas linhas de texto a um arquivo específico, conforme mostrado a seguir.

string dummyLines = "This is first line."; + Environment.NewLine +
                    "This is second line." + Environment.NewLine +
                    "This is third line.";
//Abra DummyFile.txt e anexe linhas. Se o arquivo não existir, crie e abra.
File.AppendAllLines(@"C:\DummyFile.txt", dummyLines.Split(Environment.NewLine.ToCharArray()).ToList<string>());

Anexar string

Use o método File.AppendAllText () para anexar uma string a uma linha de código de arquivo, conforme mostrado a seguir.

//Abra DummyFile.txt e anexe o texto. Se o arquivo não existir, crie e abra.
File.AppendAllText(@"C:\ DummyFile.txt", "This is File testing");

Sobrescrever texto

UsarFile.WriteAllText()O método escreve texto no arquivo. Note que ele não anexa texto, mas sobrescreve o texto existente.

    Exemplo: sobrescrever texto existente

//Abra DummyFile.txt e escreva texto. Se o arquivo não existir, crie e abra.
File.WriteAllText(@"C:\DummyFile.txt", "This is dummy text");

O exemplo a seguir demonstra como usar a classe File estática para executar diferentes operações.

//Verificar se o arquivo existe em uma posição específica
bool isFileExists = File.Exists(@"C:\ DummyFile.txt"); // Retornar falso
//Copiar DummyFile.txt para um novo arquivo DummyFileNew.txt
File.Copy(@"C:\DummyFile.txt", @"D:\NewDummyFile.txt");
//Obter a hora da última acesso ao arquivo 
DateTime lastAccessTime = File.GetLastAccessTime(@"C:\DummyFile.txt");
//Obter a hora da última escrita do arquivo
DateTime lastWriteTime = File.GetLastWriteTime(@"C:\DummyFile.txt");
// Mover arquivo para nova posição
File.Move(@"C:\DummyFile.txt", @"D:\DummyFile.txt");
//Abra o arquivo e retorne um FileStream para ler bytes do arquivo
FileStream fs = File.Open(@"D:\DummyFile.txt", FileMode.OpenOrCreate);
//Abra o arquivo e retorne um StreamReader para ler strings do arquivo
StreamReader sr = File.OpenText(@"D:\DummyFile.txt");
    
//Excluir arquivo
File.Delete(@"C:\DummyFile.txt");

Portanto, é fácil lidar com arquivos físicos usando a classe File estática. No entanto, se você desejar mais flexibilidade, pode usar a classe FileInfo. Da mesma forma, use a classe Directory estática para lidar com diretórios físicos.

Ponto a lembrar

  1. File é uma classe estática, que pode ler/escrever arquivos físicos com menos código.

  2. A classe File estática oferece funcionalidades como criar, ler/escrever, copiar, mover, excluir arquivos físicos.

  3. A classe Directory estática oferece funcionalidades como criar, copiar, mover, excluir diretórios físicos com menos código.

  4. As classes FileInfo e DirectoryInfo fornecem funcionalidades semelhantes às classes estáticas File e Directory.