Resumo : neste tutorial, você aprenderá como copiar um arquivo existente para um novo arquivo usando o
método C#.File.Copy
()
Introdução ao método C# File.Copy()
O método C#
permite copiar um arquivo existente para um novo arquivoFile.Copy
()
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 sourceFileName
nã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 desFilename
já existir, o File.Copy()
método gerará um arquivo IOException
.
Exemplo do método File.Copy()
O exemplo a seguir demonstra como copiar readme.txt
arquivo de C:\temp
diretório para C:\backup
diretó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
o método para copiar o File.Copy
()readme.txt
arquivo do C:\temp
diretório para o C:\backup
diretó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
dentro de uma File.Copy
()try...catch
instruçã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.txt
já 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.txt
arquivo 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
método:File.Copy
()
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 destFileName
arquivo, 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
o método para copiar o diretório File.Copy
()
from para o diretório e sobrescrever se já tiver o arquivo.readme.txt
C:\temp
C:\backup
C:\backup
readme.txt
Resumo
- Use
o método para copiar um arquivo existente para um novo e, opcionalmente, sobrescrever o novo arquivo, se ele existir.File.Copy
()