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.