Manipulação de diretórios

A manipulação de diretórios em C# é realizada principalmente através das classes do namespace System.IO, como Directory e DirectoryInfo. Com elas, é possível criar, renomear, listar, mover e excluir diretórios, além de obter informações detalhadas sobre o sistema de ficheiros.

1. Importar o Namespace Necessário

Antes de começar, adicione o seguinte no início do seu ficheiro:

using System.IO;

2. Criar um Diretório

Para criar um novo diretório:

Directory.CreateDirectory("MeuDiretorio");

Esse método cria o diretório especificado se ele ainda não existir.

3. Listar Diretórios e Arquivos

Para listar todos os subdiretórios de um diretório:

string[] subdirs = Directory.GetDirectories("MeuDiretorio");
foreach (string dir in subdirs)
{
Console.WriteLine(dir);
}

Para listar todos os arquivos de um diretório:

string[] arquivos = Directory.GetFiles("MeuDiretorio");
foreach (string arquivo in arquivos)
{
Console.WriteLine(arquivo);
}

Você pode também filtrar por padrão (ex: somente arquivos .txt):

string[] txtFiles = Directory.GetFiles("MeuDiretorio", "*.txt");

4. Renomear um Diretório

Renomear um diretório é feito com Directory.Move:

if (Directory.Exists("DiretorioAntigo"))
{
Directory.Move("DiretorioAntigo", "DiretorioNovo");
}

5. Mover um Diretório

O método Directory.Move também serve para mover diretórios para outro local:

Directory.Move("MeuDiretorio", @"C:\NovoCaminho\MeuDiretorio");

6. Excluir um Diretório

Para excluir um diretório (e todo o seu conteúdo):

Directory.Delete("MeuDiretorio", true); // true para excluir subdiretórios e arquivos

7. Obter Informações de Diretórios

Com DirectoryInfo, pode-se obter detalhes sobre diretórios:

DirectoryInfo di = new DirectoryInfo("MeuDiretorio");
Console.WriteLine("Nome: " + di.Name);
Console.WriteLine("Caminho completo: " + di.FullName);
Console.WriteLine("Criado em: " + di.CreationTime);

DirectoryInfo[] subdirs = di.GetDirectories();
foreach (DirectoryInfo subdir in subdirs)
{
Console.WriteLine("Subdiretório: " + subdir.Name);
}

8. Boas Práticas

  • Verifique sempre se o diretório existe antes de manipular, usando Directory.Exists.
  • Utilize tratamento de exceções com try-catch para evitar falhas inesperadas durante operações de E/S.
  • Prefira métodos assíncronos em aplicações que exigem alta performance ou responsividade.

Resumo

Com as classes Directory e DirectoryInfo, é possível criar, listar, renomear, mover, excluir e obter informações de diretórios de forma simples e eficiente em C#. Essas operações são fundamentais para o gerenciamento de arquivos em aplicações desktop, web ou serviços automatizados.