2011-09-18 6 views
20

Je travaille sur un projet dans lequel je veux copier des fichiers dans un répertoire vers un second répertoire déjà existant.Copier un fichier dans un répertoire différent

Je ne trouve pas un moyen de simplement copier d'un dossier à un autre. Je peux trouver le fichier de copie dans un nouveau fichier, ou le répertoire dans un nouveau répertoire. La façon dont j'ai installé mon programme maintenant est de copier le fichier et de le laisser dans le même répertoire, puis de déplacer cette copie dans le répertoire que je veux.

Editer:

Merci à tous. Toutes vos réponses ont fonctionné. J'ai réalisé ce que j'ai fait de mal, quand j'ai placé le chemin de destination je n'ai pas ajouté un nom de fichier. Tout fonctionne maintenant, merci pour les réponses super rapides.

+9

Vous devez accepter une réponse ... –

Répondre

5

Peut-être

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

?

+1

qui ne copie pas un fichier * d'un répertoire à un autre *, qui est ce qui est dans la question. – svick

+0

@svick comment votre réponse est-elle différente de la mienne? – evilone

+0

Ce n'est pas maintenant, mais c'était avant que vous faites votre édition (regardez l'histoire de votre réponse). – 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

En plus de répondre [Comment: copier, supprimer et déplacer des fichiers et des dossiers (Guide de programmation C#)] (http://msdn.microsoft.com/fr-fr/library/cc148994.aspx) et [Copier plusieurs fichiers ] (http://www.dreamincode.net/forums/topic/55893-copy-multiple-files/) – Samich

+1

@Austin, la façon dont vous calculez 'destination' n'a pas de sens. 'source' est le chemin vers le fichier source, pas seulement le nom du fichier. – svick

+0

@svick: bonne prise. J'ai d'abord eu la source juste le nom de fichier. –

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

fonctionne très bien.

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

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

Joli usage de Path.GetFileName, merci! –

1

Cela a fonctionné pour moi:

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)); 
    } 
Questions connexes