/// <summary> /// Fusionne plusieur fichier en un seul /// NOTE: pour plus de "confort" on ajoutera Using System.IO /// </summary> /// <param name="bDestroy">True = Supprimer les fichiers sources</param> /// <param name="sDestFile">Chemin du fichier de destination</param> /// <param name="clearIfExists">True = Fichier de destination existe alors il sera supprimer</param> /// <param name="aSrcFiles">Tableau de string contenant soit plusieur fichiers soit un SEUL nom de répertoire</param> /// <returns>Le nombre de fichier fusionnés</returns> public int MergeFiles(bool DestroySrc, string DestFile, bool ClearIfExists, string[] SrcFiles) { System.IO.StreamReader FReader; string[] FNames; int NbrMerged = 0; //Tableau de source vide on sort sans rien faire if (SrcFiles.Length == 0) { return NbrMerged; } //Si on souhaite repartire d'un fichier vierge if ((ClearIfExists && System.IO.File.Exists(DestFile))) { System.IO.File.Delete(DestFile); } // suivant le cas on remplis les nom de fichiers avec soit if (System.IO.Directory.Exists(SrcFiles[0])) { //1 - les fichiers contenus dans le répertoire FNames = System.IO.Directory.GetFiles(SrcFiles[0]); } else { //2 - les fichiers passés en paramètre FNames = SrcFiles; } foreach (string FPath in FNames) { //Si le fichier existe if (System.IO.File.Exists(FPath)) { //On le charge FReader = new System.IO.StreamReader(FPath, System.Text.Encoding.GetEncoding("iso-8859-1")); //On l'ajoute à la fin du fichier de destiantion System.IO.File.AppendAllText(DestFile, FReader.ReadToEnd()); //On supprime le fichie rajouté si nécessaire if (DestroySrc) { System.IO.File.Delete(FPath); } //On incrémente le nombre de fichiers fusionné. NbrMerged++; FReader.Close(); FReader.Dispose(); } } return NbrMerged; } //Exemple d'utilisation //1 - en passant plusieurs fichier MessageBox.Show(MergeFiles(false, @"C:\TestC.txt", true, new string[] { @"C:\Test\1.dat", @"C:\Test\2.dat" }).ToString()); //2 - en passant un répertoire MessageBox.Show(MergeFiles(false, @"C:\TestC.txt", true, new string[] { @"C:\Test\" }).ToString());
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.