66 votes

Copiez tous les fichiers dans le répertoire

Comment pouvez Copier tout le contenu dans un répertoire à l'autre avec boucle de chaque fichier?

le langage c# 4

120voto

Daniel Hilgarth Points 90722

Vous ne pouvez pas. Ni Directory ni DirectoryInfo fournir un Copy méthode. Vous avez besoin de mettre en œuvre vous-même.

void Copy(string sourceDir, string targetDir)
{
    Directory.CreateDirectory(targetDir);

    foreach(var file in Directory.GetFiles(sourceDir))
        File.Copy(file, Path.Combine(targetDir, Path.GetFileName(file)));

    foreach(var directory in Directory.GetDirectories(sourceDir))
        Copy(directory, Path.Combine(targetDir, Path.GetFileName(directory)));
}

19voto

Xhalent Points 3038

Msdn a des conseils sur ce - Comment:Copier des Répertoires

12voto

Shlomi Ohayon Points 87

Vous pouvez utiliser VB du système de fichiers.CopyDirectory méthode pour simplifier la tâche:

using Microsoft.VisualBasic.FileIO;

foo(){
    FileSystem.CopyDirectory(directoryPath, tempPath);
}

Ressources: Système de fichiers.CopyDirectory Méthode

1voto

Max Points 4366

Vous ne pouvez pas. Mais vous pouvez utiliser une sorte de succincte code comme celui - Directory.GetFiles(mydir).ToList().ForEach(f => File.Copy(f, otherdir + "\\" f);

1voto

m0skit0 Points 10269

Exécuter xcopy source_directory\*.* destination_directory comme une commande externe. Bien sûr, cela ne fonctionne que sur les machines Windows.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X