Copie un archivo a otra ubicación en C#
Esta publicación discutirá cómo copiar un archivo a otra ubicación en C#.
1. Usando File.Copy()
método
Puedes usar File.Copy(src, dest)
método para copiar un archivo existente a un archivo nuevo, que puede tener un nombre de archivo diferente al del archivo de origen. El File
la clase está disponible en el System.IO
espacio de nombres, y ambos src
y dest
pueden ser rutas relativas o absolutas.
El siguiente ejemplo copia el archivo especificado por src
al archivo especificado por dest
utilizando el File.Copy()
método.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using System; using System.IO; public class Program { public static void Main() { string src = @"C:\image.png"; string dest = @"C:\image.png"; File.Copy(src, dest); } } |
Debe encerrar su código dentro de un bloque try-catch y asegurarse de que la ruta especificada por src
y dest
es válido antes de invocar el File.Copy()
método.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; using System.IO; public class Program { public static void Main() { string src = @"C:\image.png"; string dest = @"C:\image.png"; try { if (File.Exists(src) && !File.Exists(dest)) { File.Copy(src, dest); } else { Console.WriteLine("Source file doesn't exist or destination file exist."); } } catch (Exception ex) { // manejar otras excepciones } } } |
La versión anterior de File.Copy()
no permite sobrescribir archivos que ya existen, y lanza System.IO.IOException
. los File.Copy()
El método puede aceptar un parámetro booleano opcional que, si true
, sobrescribirá el archivo de destino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; using System.IO; public class Program { public static void Main() { string src = @"C:\image.png"; string dest = @"C:\image.png"; try { if (File.Exists(src)) { File.Copy(src, dest, true); } else { Console.WriteLine("The source file doesn't exist."); } } catch (Exception ex) { // manejar otras excepciones } } } |
2. Usando FileInfo.CopyTo()
método
Como alternativa, puede utilizar el FileInfo.CopyTo()
método para copiar un archivo existente a una nueva ubicación. El comportamiento predeterminado de este método no permite sobrescribir un archivo existente.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.IO; public class Program { public static void Main() { string src = @"C:\image.png"; string dest = @"C:\image.png"; try { if (File.Exists(src) && !File.Exists(dest)) { FileInfo fi = new FileInfo(src); fi.CopyTo(dest); } else { Console.WriteLine("The source file doesn't exist or the destination file exist."); } } catch (Exception ex) { // manejar otras excepciones } } } |
Para anular un archivo existente, puede invocar el CopyTo(String, Boolean)
sobrecarga, que acepta un valor booleano overwrite
parámetro. Si el overwrite
el parámetro es true
, el archivo existente se sobrescribirá.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.IO; public class Program { public static void Main() { string src = @"C:\image.png"; string dest = @"C:\image.png"; try { if (File.Exists(src)) { FileInfo fi = new FileInfo(src); fi.CopyTo(dest, true); } else { Console.WriteLine("The source file doesn't exist."); } } catch (Exception ex) { // manejar otras excepciones } } } |
Se trata de copiar un archivo a otra ubicación en C#.