Trabalho com o sistema de arquivos em C#: exemplos práticos e dicas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: por que é necessário trabalhar com o sistema de arquivos em C#

\n

Qualquer aplicação séria, mais cedo ou mais tarde, enfrenta a necessidade de salvar dados. Sejam arquivos de configuração, logs, documentos de usuário ou dados temporários — trabalhar com o sistema de arquivos é uma habilidade fundamental para o desenvolvedor C#. Neste artigo, com exemplos práticos, veremos como criar, ler, escrever e gerenciar arquivos e pastas usando .NET. Você aprenderá não apenas as operações básicas, mas também as melhores práticas de tratamento de exceções e trabalho com fluxos.

\n\n

Classes principais para trabalhar com o sistema de arquivos

\n

No .NET, para interagir com o sistema de arquivos, são usados os namespaces System.IO e System.IO.Enumeration. As principais classes que você precisará:

\n
    \n
  • File — métodos estáticos para criar, copiar, excluir e mover arquivos.
  • \n
  • FileInfo — classe de instância para trabalhar com um arquivo específico (suporta as mesmas operações, mas requer a criação de um objeto).
  • \n
  • Directory — métodos estáticos para trabalhar com diretórios.
  • \n
  • DirectoryInfo — classe de instância para trabalhar com diretórios.
  • \n
  • Path — classe utilitária para trabalhar com caminhos (combinação, obtenção de extensão, nome, etc.).
  • \n
  • FileStream — fluxo de baixo nível para leitura/escrita de bytes.
  • \n
  • StreamReader / StreamWriter — wrappers de alto nível para trabalhar com texto.
  • \n
\n

A escolha entre métodos estáticos e classes de instância depende do cenário. Se você precisa executar uma única operação — use File ou Directory. Se forem planejadas várias operações em um mesmo objeto — crie FileInfo ou DirectoryInfo.

\n\n

Criação, leitura e escrita de arquivos

\n\n

1. Criação e escrita de arquivo de texto

\n

A maneira mais simples de escrever texto em um arquivo é usar o método File.WriteAllText. Ele cria o arquivo (ou sobrescreve um existente) e fecha o fluxo automaticamente.

\n
using System.IO;\n\nstring path = @"C:\\temp\\example.txt";\nstring content = "Olá, mundo! Este é um arquivo de teste.";\n\nFile.WriteAllText(path, content);\nConsole.WriteLine("Arquivo criado e escrito.");
\n

Se precisar adicionar dados ao final do arquivo, use File.AppendAllText:

\n
File.AppendAllText(path, "\\nLinha adicionada.");
\n\n

2. Leitura de arquivo

\n

Para ler todo o texto, use File.ReadAllText:

\n
string readContent = File.ReadAllText(path);\nConsole.WriteLine(readContent);
\n

Se o arquivo for grande, é melhor ler linha por linha com File.ReadLines (retorna IEnumerable<string>):

\n
foreach (string line in File.ReadLines(path))\n{\n    Console.WriteLine(line);\n}
\n\n

3. Trabalho com arquivos binários

\n

Para dados binários (imagens, arquivos compactados), use FileStream ou BinaryReader/BinaryWriter. Exemplo de escrita de um array de bytes:

\n
byte[] data = { 0x48, 0x65, 0x6C, 0x6C, 0x6F }; // "Hello"\nFile.WriteAllBytes(@"C:\\temp\\binary.dat", data);\n\nbyte[] readData = File.ReadAllBytes(@"C:\\temp\\binary.dat");\nConsole.WriteLine(BitConverter.ToString(readData)); // 48-65-6C-6C-6F
\n\n

Trabalho com pastas e gerenciamento de arquivos

\n\n

1. Criação e exclusão de pastas

\n

Criar uma pasta pode ser feito com Directory.CreateDirectory. O método cria todas as pastas ausentes no caminho:

\n
string dirPath = @"C:\\temp\\MyApp\\Logs";\nDirectory.CreateDirectory(dirPath);\nConsole.WriteLine("Pasta criada.");
\n

Exclusão de pasta (recursiva, com todo o conteúdo):

\n
if (Directory.Exists(dirPath))\n{\n    Directory.Delete(dirPat                

Blogs

Book Recommendations