Trabalhando com o sistema de arquivos em C#: guia completo

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#: do básico às técnicas avançadas



Trabalhar com o sistema de arquivos é uma das tarefas principais no desenvolvimento de qualquer aplicação. Em C# (.NET), existe o poderoso namespace System.IO para esse fim, que fornece ao desenvolvedor um conjunto completo de ferramentas para criar, ler, escrever, mover e excluir arquivos e pastas. Neste artigo, vamos detalhar todas as operações básicas com o sistema de arquivos, começando com exemplos simples e terminando com técnicas avançadas de processamento de dados.



Fundamentos do trabalho com arquivos em C#



O namespace System.IO inclui as classes File e FileInfo, que fornecem métodos estáticos e de instância para gerenciar arquivos. Vamos considerar as operações básicas.



Leitura e escrita de arquivos de texto



A maneira mais simples de trabalhar com arquivos de texto é usar os métodos estáticos da classe File:



using System.IO;

// Escrever texto em um arquivo (cria um novo arquivo ou sobrescreve um existente)string content = "Olá, mundo! Este é um exemplo de trabalho com arquivos em C#.";File.WriteAllText(@"C:\\temp\\example.txt", content);

// Ler todo o texto de um arquivostring readContent = File.ReadAllText(@"C:\\temp\\example.txt");Console.WriteLine(readContent);

// Adicionar ao final do arquivoFile.AppendAllText(@"C:\\temp\\example.txt", "Nova linha adicionada.");


Trabalho com arquivos binários



Para trabalhar com dados binários, use File.ReadAllBytes e File.WriteAllBytes:



byte[] binaryData = new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F };File.WriteAllBytes(@"C:\\temp\\binary.bin", binaryData);

byte[] readBinary = File.ReadAllBytes(@"C:\\temp\\binary.bin");Console.WriteLine(string.Join(", ", readBinary)); // Saída: 72, 101, 108, 108, 111


Verificação da existência de um arquivo e sua exclusão



Antes de realizar operações com arquivos, é sempre útil verificar sua existência:



string filePath = @"C:\\temp\\example.txt";

if (File.Exists(filePath)){ Console.WriteLine("Arquivo existe. Excluindo..."); File.Delete(filePath); Console.WriteLine("Arquivo excluído.");}else{ Console.WriteLine("Arquivo não encontrado.");}


Trabalho com diretórios em C#



Para gerenciar pastas, são usadas as classes Directory e DirectoryInfo. Elas permitem criar, mover, renomear e excluir diretórios, bem como obter informações sobre eles.



Criação e exclusão de pastas



string dirPath = @"C:\\temp\\MyNewFolder";

// Criar pasta (se já existir, nenhuma exceção é lançada)Directory.CreateDirectory(dirPath);

// Verificar existênciaif (Directory.Exists(dirPath)){ Console.WriteLine("Pasta criada com sucesso.");}

// Excluir pasta (segundo parâmetro - excluir recursivamente)Directory.Delete(dirPath, recursive: true);Console.WriteLine("Pasta excluída.");


Obter lista de arquivos e subpastas



Os métodos GetFiles e GetDirectories permitem obter o conteúdo de um diretório:



string targetDir = @"C:\\temp";

// Obter todos os arquivos no diretóriostring[] files = Directory.GetFiles(targetDir);Console.WriteLine("Arquivos no diretório:");foreach (string file in files){ Console.WriteLine($" {Path.GetFileName(file)}");}

// Obter todas as subpastasstring[] subDirs = Directory.GetDirectories(targetDir);Console.WriteLine("Subpastas:");foreach (string dir in subDirs){ Console.WriteLine($" {Path.GetFileName(dir)}");}

// Pesquisar por padrão (por exemplo, todos os arquivos de texto)string[] txtFiles = Directory.GetFiles(targetDir, "*.txt");Console.WriteLine($"Encontrados {txtFiles.Length} arquivos de texto.");


Trabalho com DirectoryInfo



A classe DirectoryInfo

Blogs

Book Recommendations