Como manipular diretórios e cópia de arquivos em C#
Manipular diretórios e copiar arquivos é uma tarefa comum em muitas aplicações C#. A linguagem oferece uma rica API para interagir com o sistema de arquivos, permitindo que você crie, exclua e copie arquivos e pastas de forma eficiente. Neste post, vamos explorar como manipular diretórios e cópia de arquivos em C#.
Exemplo de código
using System;
using System.IO;
using System.Windows.Forms;
namespace ManipularDiretorios
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void buttonCopy_Click(object sender, EventArgs e)
{
CopyFile();
}
private void CopyFile()
{
string sourceFile = textBoxSource.Text;
string destinationFile = textBoxDestination.Text;
try
{
if (File.Exists(sourceFile))
{
// Copia o arquivo para o destino
File.Copy(sourceFile, destinationFile, true); // O parâmetro 'true' sobrescreve se já existir
MessageBox.Show("Arquivo copiado com sucesso.");
}
else
{
MessageBox.Show("Arquivo de origem não encontrado.");
}
}
catch (Exception ex)
{
MessageBox.Show($"Erro ao copiar arquivo: {ex.Message}");
}
}
private void buttonCreateDirectory_Click(object sender, EventArgs e)
{
CreateDirectory();
}
private void CreateDirectory()
{
string directoryPath = textBoxDestination.Text;
try
{
// Cria o diretório se não existir
if (!Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath);
MessageBox.Show("Diretório criado com sucesso.");
}
else
{
MessageBox.Show("O diretório já existe.");
}
}
catch (Exception ex)
{
MessageBox.Show($"Erro ao criar diretório: {ex.Message}");
}
}
}
}
Explicação do código
- buttonCopy_Click: Este método é chamado quando o botão de copiar é clicado. Ele chama o método
CopyFile()
; - CopyFile: Este método verifica se o arquivo de origem existe e, se existir, realiza a cópia para o destino especificado. O método
File.Copy
é utilizado, e o parâmetrotrue
permite que o arquivo de destino seja sobrescrito, caso já exista; - buttonCreateDirectory_Click: Este método é chamado quando o botão para criar um diretório é clicado. Ele chama o método
CreateDirectory()
; - CreateDirectory: Este método verifica se o diretório especificado existe. Se não existir, ele é criado usando
Directory.CreateDirectory
. Caso contrário, uma mensagem informa que o diretório já existe.
Outro exemplo prático
O código abaixo mostra como criar diretórios e subdiretórios, recuperar o caminho deles (path) e copiar arquivos para esses locais. Também é mostrado como manipular o componente “OpenFileDialog”. Veja:
//Bibliotecas necessárias
using System.IO;
using Microsoft.VisualBasic.FileIO;
...
string dirCodigo = tbCodigo.Text; //nome do diretório principal
//cria diretório principal em C:
System.IO.Directory.CreateDirectory("C:\" + dirCodigo);
//pega o diretório principal
DirectoryInfo dir = new DirectoryInfo("C:\" + dirCodigo);
//cria os subdiretórios dentro do diretório principal
DirectoryInfo sub1 = dir.CreateSubdirectory("subdir1");
DirectoryInfo sub2 = dir.CreateSubdirectory("subdir2");
DirectoryInfo sub3 = dir.CreateSubdirectory("subdir3");
Cópia de arquivos para diretórios:
//pega o nome do arquivo com o OpenFileDialog (ofd1)
string nomeDoArquivo = System.IO.Path.GetFileName(ofd1.FileName);
//mostra o nome do arquivo no TextBox
string arquivo = tbArquivo.Text;
//copia o arquivo para a pasta criada
FileInfo fi = new FileInfo(arquivo);
//caminho e nome do arquivo a ser copiado
fi.CopyTo("C:\\diretorio\\" + nomeDoArquivo);
Também é possível copiar pastas e arquivos de um local para outro desta forma:
...
string sourcePath = caminho_de_origem; //pasta(s) a ser(em) copiadas
string destinationPath = caminho_de_destino; //onde será(ão) colada(s) a(s) pasta(s)
//Copia as pastas e arquivos para os destinos caso exista as pastas na origem
if (Directory.Exists(sourcePathCapas))
FileSystem.CopyDirectory(sourcePathCapas, destinationPath,
UIOption.AllDialogs);
Obs.: Será necessário incluir no projeto, a referência “Microsoft.VisualBasic”.
Manipular diretórios e copiar arquivos em C# é uma tarefa simples, mas poderosa.
A API do .NET oferece várias funcionalidades que facilitam a interação com o sistema de arquivos, permitindo que você crie aplicações que lidam eficientemente com arquivos e pastas.
Dúvidas ou sugestões sobre como manipular diretórios e cópia de arquivos em C#? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Sobre o Autor
0 Comentários