2011-09-18 22 views
20

Estoy trabajando en un proyecto donde quiero copiar algunos archivos en un directorio a un segundo directorio ya existente.Copie el archivo a un directorio diferente

No encuentro la manera de copiar de una carpeta a otra. Puedo encontrar un archivo de copia en un nuevo archivo o directorio en un nuevo directorio.

La forma en que tengo mi programa configurado ahora es Copio el archivo y lo dejo en el mismo directorio, luego muevo esa copia al directorio que quiero.

Edit:

Gracias a todos. Todas sus respuestas funcionaron. Me di cuenta de lo que hice mal, cuando establecí la ruta de destino, no agregué un nombre de archivo. Todo funciona ahora, gracias por las respuestas súper rápidas.

+9

Debe aceptar una respuesta ... –

Respuesta

5

Tal

File.Copy("c:\\myFolder\\myFile.txt", "c:\\NewFolder\\myFile.txt"); 

?

+1

Eso no copiar un archivo * a partir de un directorio a otro *, que es lo que está en la pregunta. – svick

+0

@svick ¿cómo es tu respuesta diferente a la mía? – evilone

+0

No es ahora, pero era antes de que hicieras tu edición (mira el historial de tu respuesta). – svick

13

MSDN File.Copy

var fileName = "sourceFile.txt"; 
var source = Path.Combine(Environment.CurrentDirectory, fileName); 
var destination = Path.Combine(destinationFolder, fileName); 

File.Copy(source, destination); 
+0

Además de responder [Cómo copiar, eliminar y mover archivos y carpetas (Guía de programación C#)] (http://msdn.microsoft.com/en-us/library/cc148994.aspx) y [Copiar varios archivos ] (http://www.dreamincode.net/forums/topic/55893-copy-multiple-files/) – Samich

+1

@Austin, la forma en que calcula 'destino 'no tiene sentido. 'fuente' es la ruta al archivo fuente, no solo el nombre del archivo. – svick

+0

@svick: buena captura. Originalmente tenía la fuente solo ser el nombre del archivo. –

26
File.Copy(@"someDirectory\someFile.txt", @"otherDirectory\someFile.txt"); 

funciona bien.

24
string fileToCopy = "c:\\myFolder\\myFile.txt"; 
string destinationDirectory = "c:\\myDestinationFolder\\"; 

File.Copy(fileToCopy, destinationDirectory + Path.GetFileName(fileToCopy)); 
+0

Buen uso de Path.GetFileName, gracias! –

1

Esto funcionó para mí:

string picturesFile = @"D:\pictures"; 
    string destFile = @"C:\Temp\tempFolder\"; 

    string[] files = Directory.GetFiles(picturesFile); 
    foreach (var item in files) 
    { 
     File.Copy(item, destFile + Path.GetFileName(item)); 
    } 
Cuestiones relacionadas