C# Copiar Arquivo

Resumo : neste tutorial, você aprenderá como copiar um arquivo existente para um novo arquivo usando o File.Copy()método C#.

Introdução ao método C# File.Copy()

O método C# File.Copy()permite copiar um arquivo existente para um novo arquivo

public static void Copy (
   string sourceFileName, 
   string destFileName
);Linguagem de código:  C#  ( cs )

Nesta sintaxe, the sourceFileNameé o arquivo a ser copiado e the destFileNameé o nome do arquivo de destino.

Se the sourceFileNamenão existir, o Copy()método gera um FileNotFoundExcpetion.

Se ocorrer um erro de E/S durante a cópia do arquivo, por exemplo, se ele desFilenamejá existir, o File.Copy()método gerará um arquivo IOException.

Exemplo do método File.Copy()

O exemplo a seguir demonstra como copiar readme.txtarquivo de C:\tempdiretório para C:\backupdiretório:

using static System.Console;

string sourceDir = @"C:\temp";
string backupDir = @"C:\backup";

string filename = @"readme.txt";


File.Copy(
    Path.Combine(sourceDir, filename),
    Path.Combine(backupDir, filename)
);Linguagem de código:  C#  ( cs )

Como funciona.

Primeiro, defina duas variáveis ​​que contêm caminhos para os diretórios temporário e de backup:

string sourceDir = @"C:\temp";
string backupDir = @"C:\backup";Linguagem de código:  C#  ( cs )

Segundo, declare uma variável de nome de arquivo e inicialize-a com “ readme.txt“:

string filename = @"readme.txt";Linguagem de código:  C#  ( cs )

Terceiro, use o Path.Combine()método para criar um caminho para o arquivo de origem e destino e File.Copy()o método para copiar o readme.txtarquivo do C:\tempdiretório para o C:\backupdiretório:

File.Copy(
    Path.Combine(sourceDir, filename),
    Path.Combine(backupDir, filename)
);Linguagem de código:  C#  ( cs )

Ao copiar o arquivo, pode ocorrer um erro de E/S. Para lidar com isso de maneira mais elegante, você pode colocar File.Copy()dentro de uma try...catchinstrução como esta:

using static System.Console;

string sourceDir = @"C:\temp";
string backupDir = @"C:\backup";

string filename = @"readme.txt";

try
{
    File.Copy(
        Path.Combine(sourceDir, filename),
        Path.Combine(backupDir, filename)
    );
}
catch (IOException ex)
{
    WriteLine(ex.Message);
}Linguagem de código:  C#  ( cs )

Por exemplo, se C:\backup\readme.txtjá existir, você receberá a seguinte mensagem de erro no console:

Could not find file 'C:\temp\readme.txt'.Linguagem de código:  C#  ( cs )

Da mesma forma, se o C:\temp\readme.txtarquivo não existir, o programa mostra a seguinte mensagem de erro:

The file 'C:\backup\readme.txt' already exists.Linguagem de código:  C#  ( cs )

Usando File.Copy() para substituir o arquivo de destino

Se você quiser sobrescrever o arquivo de destino, se ele existir, você pode usar uma sobrecarga do File.Copy()método:

public static void Copy (
   string sourceFileName, 
   string destFileName, 
   bool overwrite
);Linguagem de código:  C#  ( cs )

Quando você define o argumento overwrite como rue, o Copy()método sobrescreverá o destFileNamearquivo, se ele existir.

Por exemplo:

using static System.Console;

string sourceDir = @"C:\temp";
string backupDir = @"C:\backup";

string filename = @"readme.txt";

try
{
    File.Copy(
        Path.Combine(sourceDir, filename),
        Path.Combine(backupDir, filename),
        true
    );
}
catch (IOException ex)
{
    WriteLine(ex.Message);
}Linguagem de código:  C#  ( cs )

Neste exemplo, usamos File.Copy()o método para copiar o diretório readme.txtfrom para o diretório e sobrescrever se já tiver o arquivo.C:\tempC:\backupC:\backupreadme.txt

Resumo

  • Use File.Copy()o método para copiar um arquivo existente para um novo e, opcionalmente, sobrescrever o novo arquivo, se ele existir.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *