Voici ce que je te propose, j'essaie de ne pas trop factoriser le code pour le détailler
Concrètement ça :
-nettoie le dossier de sortie
-copie tous les fichiers du dossier build dans le dossier de sortie
-copie tous les fichiers du dossier ref dans le dossier de sortie, si il n'existe pas.
Et je pense que ça répond à ton besoin.
On peut éviter quelques accès en lecture disque en modifiant un peu, mais le code sera moins parlant pour toi et je pense que c'est négligeable.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| static void Main(string[] args)
{
try
{
string refFolder = @"C:\Users\PC-Quentin\Desktop\dossierRef";
string buildFolder = @"C:\Users\PC-Quentin\Desktop\dossierBuild";
string outPath = @"C:\Users\PC-Quentin\Desktop\dossierSortie";
// Si le dossier de sortie existe
if (Directory.Exists(outPath))
Directory.Delete(outPath, true); // on le supprime
Directory.CreateDirectory(outPath); // On crée le dossier de sortie
// On récupère tous les fichiers du dossier build
FileInfo[] buildFiles = new DirectoryInfo(buildFolder).GetFiles();
// pour chaque fichier du dossier build
foreach (FileInfo item in buildFiles)
item.CopyTo(outPath + "\\" + item.Name); // on le copie dans le dossier de sortie
// On récupère tous les fichiers du dossier ref
FileInfo[] refFiles = new DirectoryInfo(refFolder).GetFiles();
// pour chaque fichier du dossier ref
foreach (FileInfo item in refFiles)
if (!File.Exists(outPath + "\\" + item.Name)) // Si le fichier n'existe pas dans le dossier de sortie
item.CopyTo(outPath + "\\" + item.Name); // on le copie dans le dossier de sortie
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
} |
Partager