2011-09-18 34 views
20

Sto lavorando a un progetto in cui voglio copiare alcuni file in una directory in una seconda directory già esistente.Copia file in un'altra directory

Non riesco a trovare un modo per copiare semplicemente da una cartella all'altra. Posso trovare il file di copia in un nuovo file o directory in una nuova directory.

Il modo in cui ho impostato il mio programma al momento è copiare il file e lasciarlo nella stessa directory, quindi spostare quella copia nella directory che voglio.

Modifica:

Grazie a tutti. Tutte le tue risposte hanno funzionato. Mi sono reso conto di cosa ho fatto di sbagliato, quando ho impostato il percorso di destinazione non ho aggiunto un nome di file. Tutto funziona ora, grazie per le risposte super veloci.

+9

Si dovrebbe accettare una risposta ... –

risposta

5

Forse

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

?

+1

Questo non copiare un file * da una directory ad un'altra *, che è ciò che è nella domanda. – svick

+0

@svick, qual è la tua risposta diversa dalla mia? – evilone

+0

Non è ora, ma era prima che tu facessi la tua modifica (guarda la cronologia della tua risposta). – 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

Oltre alla risposta [Procedura: copiare, eliminare e spostare file e cartelle (C# Programming Guide)] (http://msdn.microsoft.com/en-us/library/cc148994.aspx) e [Copia di più file ] (http://www.dreamincode.net/forums/topic/55893-copy-multiple-files/) – Samich

+1

@Austin, il modo in cui si calcola 'destinazione' non ha senso. 'source' è il percorso del file sorgente, non solo il nome del file. – svick

+0

@svick: buona presa. Originariamente avevo fonte solo il nome del file. –

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

funziona bene.

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

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

Uso piacevole di Path.GetFileName, grazie! –

1

questo ha funzionato per me:

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)); 
    } 
Problemi correlati