2010-09-08 3 views
0

J'utilise le système de base d'équipe et j'ai l'exigence dans laquelle je veux copier tous les fichiers de caisse dans un dossier local avec la même structure de dossier en utilisant C#. Comment puis je faire ça?Copie de tous les fichiers de paiement


Répondre

0

Je ne sais pas ce que vous entendez par les « fichiers de caisse », mais si vous voulez copier un répertoire que vous devez:

  1. récursive énumèrent tous les fichiers et dossiers dans le répertoire de premier niveau.
  2. Pour chaque élément que vous énumérez, créez le dossier dans le répertoire de destination ou copiez le fichier source dans la hiérarchie de répertoires de destination.

Ce qui suit va énumérer tous les fichiers et dossiers dans un répertoire:

static void FullDirList(DirectoryInfo dir, string searchPattern) 
{ 
    Console.WriteLine("Directory {0}", dir.FullName); 
    // list the files 
    foreach (FileInfo f in dir.GetFiles(searchPattern)) 
    { 
    Console.WriteLine("File {0}", f.FullName); 
    } 
    // process each directory 
    foreach (DirectoryInfo d in dir.GetDirectories()) 
    { 
    FullDirList(d, searchPattern); 
    } 
} 

Si vous appelez ça avec FullDirList("C:\MyProject\", *.*), il va énumérer tous les fichiers.

Pour créer des dossiers de destination ou copier des fichiers, changez les appels en Console.WriteLine afin qu'ils effectuent les opérations appropriées. Tout ce que vous devez changer dans le nom du fichier ou du dossier de destination est le nom du dossier racine (c'est-à-dire, si vous copiez de C: \ MyProject \ à C: \ MyProjectCopy \, les fichiers de destination sont f.FullName avec le C : \ MyProject \ remplacé par C: \ MyProjectCopy).

+1

Si vous souhaitez copier uniquement les fichiers extraits, ajoutez une condition pour copier uniquement les fichiers accessibles en écriture (l'extraction d'un fichier supprime l'attribut readonly d'un fichier) –

Questions connexes