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 : 6872
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

{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...

{JAVA / J2EE} BANANA SPLIT
Un outil qui permet de couper de gros fichiers et de les recoller ensuite. utile pour deplacer un gr...

{Visual Basic, VB6, VB.NET, VB 2005} MULTI THREAD AVEC AFFICHAGE
J'ai développé cette source afin de faire du multi-thread et d'afficher des données à partir de chac...

{JAVA / J2EE} NOMBRE D'OCCURENCE D'UNE CHAINE DE CARACTÈRE DANS TOUS LES FICHIERS AVEC LES ENTÊTES SPÉCIFIÉS CONTENU DANS UN DOSSIER
Le titre est assez explicite. Il s'agit d'un petit bout de code renvoyant le nombre de fois qu'une c...

{Python} LE MOT LE PLUS LONG PAR DICO
mon premier programme python un peu élaboré, Il ouvre un dico de mots, demande à l'utilisateur la su...

{C# / C#.NET} PILOTER WORD VIA MICROSOFT.OFFICE.INTEROP.WORD
Cette classe permet d'ouvrir un document word, d'écrire des données à la suite d'un signet, de le fu...

{C / C++ / C++.NET} COMPRESSION FICHIERS ALGORITHME HUFFMAN C
Voila , le code essaye de compresser les donnees selon l'algorithme de huffman en essayant de constr...

{PHP} GESTIONNAIRE DE FICHIERS | MYSQL PHP 5.X {NEMENTON PHP MANAGER V0.5}
Voici pour ma première contribution un gestionnaire de fichiers et de base de données sous MySQL en ...

{C# / C#.NET} INFILESEEKER
L’outil de recherche de Windows XP offre une option de recherche d’un texte dans le cont...