Trabalho com o sistema de arquivos em C#: exemplos práticos para .NET

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

Trabalho com o sistema de arquivos em C#: da teoria à prática



Trabalhar com o sistema de arquivos é uma das tarefas básicas que todo desenvolvedor enfrenta. Seja para registro de logs, processamento de arquivos de configuração, importação de dados ou criação de relatórios — saber ler, escrever e gerenciar arquivos corretamente em C# (.NET) é essencial em qualquer projeto. Neste artigo, vamos explorar exemplos práticos de trabalho com o sistema de arquivos em C#, começando por operações simples até o processamento de diretórios.



Usaremos o namespace System.IO, que fornece todas as classes necessárias para interagir com o sistema de arquivos.



1. Principais classes para trabalhar com arquivos e pastas



Antes de escrever código, é importante conhecer as principais classes:



  • File — classe estática para criar, copiar, excluir e mover arquivos.
  • FileInfo — classe de instância que fornece informações sobre um arquivo específico e métodos para trabalhar com ele.
  • Directory — classe estática para trabalhar com pastas.
  • DirectoryInfo — classe de instância para obter informações sobre uma pasta.
  • Path — classe utilitária para trabalhar com caminhos de arquivos.


Vamos ver um exemplo simples — verificar se um arquivo existe e criá-lo:



using System;using System.IO;

class Program{ static void Main() { string filePath = @"C:\\Test\\example.txt";

if (File.Exists(filePath)) { Console.WriteLine("O arquivo existe."); } else { File.Create(filePath).Close(); Console.WriteLine("Arquivo criado."); } }}


Observe: após File.Create(), chamamos Close() para liberar o fluxo. Em projetos modernos, é melhor usar a construção using.



2. Leitura e escrita de arquivos de texto



O cenário mais comum é a leitura e escrita de informações textuais. Em C#, existem as classes convenientes StreamReader e StreamWriter.



2.1 Escrevendo dados em um arquivo



Exemplo de escrita de linhas em um arquivo usando StreamWriter:



string path = @"C:\\Test\\log.txt";string[] lines = { "Primeira linha", "Segunda linha", "Terceira linha" };

using (StreamWriter writer = new StreamWriter(path, false)){ foreach (string line in lines) { writer.WriteLine(line); }}Console.WriteLine("Dados gravados.");


O segundo parâmetro do construtor StreamWriter — false — significa sobrescrever o arquivo. Se for true, os dados serão adicionados ao final.



2.2 Lendo dados de um arquivo



Leitura de todo o conteúdo ou linha por linha:



string path = @"C:\\Test\\log.txt";

// Leitura de todo o texto em uma única stringstring allText = File.ReadAllText(path);Console.WriteLine("Texto completo:" + allText);

// Leitura linha por linhastring[] allLines = File.ReadAllLines(path);Console.WriteLine("Linha por linha:");foreach (string line in allLines){ Console.WriteLine(line);}


Para arquivos grandes, é melhor usar StreamReader com leitura linha por linha em um loop, para não carregar todo o arquivo na memória.



using (StreamReader reader = new StreamReader(path)){    string currentLine;    while ((currentLine = reader.ReadLine()) != null)    {        Console.WriteLine(currentLine);    }}


3. Trabalhando com arquivos binários (FileStream)



Quando é necessário trabalhar com dados binários (imagens, arquivos compactados, objetos serializados), usa-se a classe FileStream. Ela permite ler e gravar dados na forma de bytes.



Exemplo de gravação e leitura de um array de bytes:



Blogs

Book Recommendations