Les archives telles que ZIP, RAR, TAR, GZIP, BZIP2 sont couramment utilisées pour stocker plusieurs fichiers et dossiers dans un même conteneur. Une autre raison principale pour les fichiers d’archives est de réduire la taille totale du fichier à l’aide d’algorithmes de compression. Tout comme l’analyse et l’extraction de données à partir de documents de différents formats de fichiers, vous pouvez traiter les fichiers d’archive de la même manière. Vous pouvez extraire le texte, les images et même les métadonnées des fichiers compressés dans les archives. Dans cet article, nous verrons comment extraire les données des archives ZIP à l’aide de C# avec vos applications .NET.

Les sujets suivants sont traités ci-dessous :

API .NET pour extraire les données des fichiers ZIP

GroupDocs.Parser fournit la solution d’analyse de documents pour les développeurs. J’utiliserai son API .NET pour extraire les données des fichiers ZIP dans les exemples C# de cet article. L’API permet en outre l’extraction de texte, d’images et de métadonnées à partir d’une longue liste de formats de documents pris en charge tels que des documents de traitement de texte, des présentations, des feuilles de calcul, des e-mails, des bases de données, des livres électroniques et bien d’autres.

Vous pouvez télécharger le programme d’installation DLLs ou MSI à partir de la section téléchargements ou installer l’API en ajoutant son package à votre application .NET via NuGet.

PM> Install-Package GroupDocs.Parser

Comment extraire des données de fichiers ZIP en C#

Le GroupDocs.Parser pour .NET prend en charge l’extraction de données à partir de divers formats de fichiers de compression tels que ZIP, RAR, TAR, BZIP2 et GZIP. Après avoir récupéré la collection de fichiers à partir du fichier compressé, vous pouvez en outre extraire tout type de données de chaque fichier.

Les étapes suivantes montrent comment extraire les données des fichiers ZIP et récupérer le texte de chaque fichier joint en C#.

  • Chargez l’archive ZIP en utilisant la classe Parser.
  • Obtenez les pièces jointes à l’aide de la méthode GetContainer
  • Parcourez la collection de pièces jointes.
  • Pour chaque pièce jointe, vous pouvez obtenir ses différents types de données en utilisant les méthodes respectives de la classe Parser.

Le code source montre comment extraire les données des fichiers ZIP à l’aide de C#. Dans cet exemple, je vais extraire l’intégralité du texte de tous les fichiers de l’archive ZIP.

// Extraire les données des archives ZIP en C#
using (Parser parser = new Parser(@"path/sample.zip"))
{
    // Extraire les pièces jointes du conteneur
    IEnumerable<ContainerItem> attachments = parser.GetContainer();

    // Itérer sur une collection d'entités
    foreach (ContainerItem item in attachments)
    {
        // Imprimez les INFOS FICHIER
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + item.Name);
        Console.WriteLine("File Size: " + item.Size + " Bytes");
        Console.WriteLine("-----------------------------------");

        try
        {
            using (Parser attachmentParser = item.OpenParser())
            {
                // Extraire le texte de l'entité ZIP
                using (TextReader reader = attachmentParser.GetText())
                {
                    Console.WriteLine(reader == null ? "No text" : reader.ReadToEnd());
                }
            }
        }
        catch (UnsupportedDocumentFormatException)
        {
            Console.WriteLine("Isn't supported.");
        }
    }
}

La sortie du code source ci-dessus montre le texte extrait de l’un des fichiers PDF dans le fichier ZIP.

 -----------------------------------
 Name: sample.pdf
 File Size: 33370 Bytes
 -----------------------------------

 Heading

 This is the first paragraph of the sample document that contains some sample
 text, bulleted list, numbered list and more.

    •  Bullet Item 1
    •  Bullet Item 2
    •  Bullet Item 3
 
 This is the second paragraph of the sample document and after this, there is a
 numbered list: 

    1. Numbered Item 1
    2. Numbered Item 2
    3. Numbered Item 3 

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire gratuite afin d’utiliser l’API sans les limitations d’évaluation.

Conclusion

En résumé, vous avez appris à extraire des données d’archives ZIP à l’aide de C# dans votre application .NET. Plus précisément, vous pouvez désormais extraire des données de fichiers ZIP, RAR, TAR, GZIP et BZIP. Vous pouvez même créer votre propre application d’extraction de données .NET pour les fichiers compressés. Pour plus de détails ou en savoir plus sur l’API, consultez la documentation. Pour toute question, contactez-nous via le forum.

Voir également