Les Snippets

Connexion

Fusionner (merger) plusieurs fichiers en un seul

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 18/09/2007 13:23:50 et initié par PCPT [Liste]
Vue : 7663
Catégorie(s) : Fichier / Disque, Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA
- VB 2005
- C# 2.x
- Voir tous les langages pour ce code snippet



Langage : C# 2.x
Date ajout : 07/11/2008
Posté par jrivet [Liste]
        /// <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());
Remarque :
Version C# du même snippet.

Snippets en rapport avec : Fichiers, Fusionner, Merger, Plusieurs



Codes sources en rapport avec : Fichiers, Fusionner, Merger, Plusieurs

{Visual Basic, VB6, VB.NET, VB 2005} FUSIONNER LES DONNÉES DES FEUILLES DE PLUSIEURS CLASSEURS EXCEL EN UN SEUL CLASSEUR
Ce code regroupe les données des feuilles de plusieurs classeurs Excel enregistrés dans le même doss...

{JAVA / J2EE} RENAME-MOAR
Programme permettant de renommer plusieurs fichiers d'un répertoire sélectionné. On peut : - Ch...

{Visual Basic, VB6, VB.NET, VB 2005} BART VOTRE BUREAU DANS UNE BARRE
Regroupez 20 icones dans une barre de travail afin de liberer un peu votre bureau. Cette barre se lo...

{PHP} LISTAGE DE FICHIERS
Ce code source permet de lister les fichiers et dossier d'un répertoire sur un serveur. Uploader de...

{Visual Basic, VB6, VB.NET, VB 2005} [VBS] PROTECTION DE VOS DONNÉES PERSONNELLES PAR LES FICHIERS SYSTÈMES DESKTOP.INI
C'est un Ancien script que j'ai réalisé il y a longtemps dans le but de protéger mes fichiers et mes...

{Delphi} LECTEUR DE FICHIER MULTIMÉDIA RIFF
Le format RIFF (Resource Interchange File Format) est très utilisé dans le monde multimédia. Sa simp...

{JAVA / J2EE} KIT DE FICHIERS DE PROGRAMMATION
C'est un ensemble de fichiers qui peuvent être facilement ajouté à vos projets. Ils sont déversifié...

{JAVA / J2EE} SUPPRIMER LES # DES COPIER-COLLER DE CS
Avez vous déjà remarqué que quand on fait un copier coller d'une classe qu'on visionne sur ce site, ...

{C / C++ / C++.NET} TEMPLATES C/C++ POUR VS 2010
Je reprends le principe des versions 2005 et 2008. http://www.cppfrance.com/code.aspx?ID=44835 Le ...

{PHP} CLASS UPLOAD DE FICHIER EN PHP
Ce petit script vous permet d'envoyer des fichiers dans votre serveur via un formulaire. Ce script e...