IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

Sharpziplib Extract ZIP C# (Comment ça fonctionne pour les développeurs)

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 21 avril 2026

Dans le paysage numérique actuel, où la gestion des données est primordiale, disposer d'outils efficaces pour la compression et la décompression est crucial. Un tel outil qui se distingue dans l'écosystème .NET est SharpZipLib. Dans cet article, nous allons approfondir SharpZipLib, explorer ses fonctionnalités, ses applications, et comment l'intégrer dans vos projets .NET.

Qu'est-ce que SharpZipLib?

SharpZipLib est une bibliothèque de compression open-source riche en fonctionnalités pour .NET, écrite entièrement en C#. Il offre un support complet pour divers formats de compression, y compris ZIP, GZip, et Tar. Développé par une communauté dévouée, SharpZipLib offre un large éventail de fonctionnalités pour compresser et décompresser des fichiers efficacement.

Fonctionnalités et Capacités

  1. Support de multiples formats de compression : SharpZipLib supporte les formats de compression populaires comme ZIP, GZip et Tar, répondant à divers cas d'utilisation et besoins.
  2. Opérations basées sur les flux : La bibliothèque fonctionne sur des flux, permettant aux développeurs de travailler avec des données provenant de diverses sources, y compris des fichiers, des flux de mémoire ou des flux réseau. Cette flexibilité facilite l'intégration transparente dans différentes parties d'une application.
  3. Niveaux de compression : Les développeurs peuvent ajuster les niveaux de compression pour équilibrer le ratio de compression et la vitesse de traitement, sur la base de leurs besoins spécifiques.
  4. Protection par mot de passe : SharpZipLib permet la création d'archives ZIP protégées par mot de passe, garantissant la sécurité des données en cryptant le contenu avec un mot de passe spécifié.
  5. Gestion et récupération d'erreurs : Des mécanismes robustes de gestion d'erreurs permettent aux développeurs de gérer gracieusement les exceptions lors des opérations de compression et de décompression. En outre, SharpZipLib supporte la récupération d'archives corrompues, améliorant la fiabilité.

Cas d'utilisation

  1. Compression et archivage de fichiers : SharpZipLib est idéal pour les applications nécessitant la compression et l'archivage de fichiers, telles que les utilitaires de sauvegarde, les outils de gestion de fichiers ou les fonctionnalités d'exportation de données.
  2. Services et API Web : Les services Web traitant des transferts de fichiers ou des échanges de données bénéficient souvent de la compression pour réduire l'utilisation de la bande passante. SharpZipLib peut être intégré sans problème dans de tels services pour compresser les données sortantes ou décompresser les charges utiles entrantes efficacement.
  3. Applications de bureau : Les applications de bureau traitant de grandes quantités de données ou de fichiers de ressources peuvent utiliser SharpZipLib pour compresser les fichiers pour le stockage ou la distribution. Cela est particulièrement utile pour les installateurs de logiciels ou les outils de synchronisation de données.
  4. Sauvegarde et stockage de données : Les applications nécessitant des sauvegardes périodiques ou de stockage de données au format compressé peuvent automatiser le processus de sauvegarde et économiser de l'espace de stockage efficacement en utilisant SharpZipLib.

Avantages de SharpZipLib

  1. Open Source : En tant que bibliothèque open-source, SharpZipLib encourage la collaboration et les contributions de la communauté, assurant une amélioration continue et une adaptabilité aux besoins évolutifs.
  2. Compatibilité multiplateforme : SharpZipLib, étant écrit en C# et visant le framework .NET, est compatible avec diverses plateformes, y compris Windows, Linux et macOS, améliorant sa polyvalence.
  3. Léger et efficace : SharpZipLib est conçu pour être léger et efficace, minimisant la consommation de ressources tout en offrant des capacités de compression et décompression haute performance.
  4. Documentation et support étendus : Une documentation complète et un support communautaire facilitent l'intégration pour les développeurs et la résolution des problèmes lors de l'utilisation de SharpZipLib.

Créer un projet C# dans Visual Studio

  1. Ouvrez Visual Studio et cliquez sur l'option "Créer un nouveau projet".

  2. Choisissez le modèle de projet approprié en fonction de vos besoins (par exemple, application console, application Windows Forms).

    Sharpziplib Extract ZIP C# (How It Works For Developers): Figure 1 - For the new project, select a "Console App" in C#.

  3. Spécifiez le nom et l'emplacement du projet, puis cliquez sur "Suivant".

    Sharpziplib Extract ZIP C# (Comment ça fonctionne pour les développeurs): Figure 2 - Configurez votre projet en spécifiant le nom du projet, l'emplacement et le nom de la solution. Ensuite, sélectionnez le Framework .NET et cliquez sur Créer.

  4. Dans les Informations supplémentaires, sélectionnez la dernière version du Framework .NET. Cliquez sur "Créer" pour créer le projet.

Processus d'installation

Pour intégrer SharpZipLib dans votre projet .NET :

  1. Dans votre IDE Visual Studio C# ConsoleApp, cliquez avec le bouton droit de la souris sur votre projet dans l'Explorateur de solutions et sélectionnez "Gérer les packages NuGet..."

  2. Dans la fenêtre du gestionnaire de packages NuGet, recherchez "SharpZipLib".

    Sharpziplib Extract ZIP C# (How It Works For Developers): Figure 3 - Install SharpZipLib using the Manage NuGet Package for Solution by searching "sharpziplib" in the search bar of NuGet Package Manager, then select the project and click on the Install button.

  3. Sélectionnez "SharpZipLib" dans les résultats de recherche et cliquez sur le bouton "Installer".

  4. NuGet téléchargera et ajoutera automatiquement les dépendances nécessaires à votre projet.

Exemple de code

Voici un exemple simplifié montrant comment utiliser SharpZipLib pour compresser et décompresser des fichiers :

using ICSharpCode.SharpZipLib.Zip;
using System;
using System.IO;

namespace SharpZipLibExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\SourceDirectory";     // Source directory containing files to compress
            string zipFilePath = @"C:\OutputDirectory\compressed.zip"; // Output path for the compressed ZIP file

            // Compress files from the source directory
            CompressDirectory(sourceDirectory, zipFilePath);
            Console.WriteLine("Files compressed successfully.");

            string extractPath = @"C:\OutputDirectory\extracted"; // Path to extract the decompressed files

            // Decompress files from the ZIP archive
            Decompress(zipFilePath, extractPath);
            Console.WriteLine("Files decompressed successfully.");
        }

        // Method to compress all files in a directory to a ZIP file
        static void CompressDirectory(string sourceDirectory, string zipFilePath)
        {
            using (var zipOutputStream = new ZipOutputStream(File.Create(zipFilePath)))
            {
                zipOutputStream.SetLevel(5); // Set compression level (0-9), 5 as a mid-range

                // Recursively add files in the source directory to the ZIP file
                AddDirectoryFilesToZip(sourceDirectory, zipOutputStream);

                zipOutputStream.Finish();
                zipOutputStream.Close();
            }
        }

        // Method to add files from a directory to a ZIP output stream
        static void AddDirectoryFilesToZip(string sourceDirectory, ZipOutputStream zipOutputStream)
        {
            // Get list of files in the directory
            string[] files = Directory.GetFiles(sourceDirectory);

            foreach (string file in files)
            {
                var entry = new ZipEntry(Path.GetFileName(file)); // Create a new entry for each file
                zipOutputStream.PutNextEntry(entry);

                using (var fileStream = File.OpenRead(file))
                {
                    // Buffer for reading files
                    byte[] buffer = new byte[4096];
                    int sourceBytes;

                    // Read file and write to ZIP stream
                    while ((sourceBytes = fileStream.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        zipOutputStream.Write(buffer, 0, sourceBytes);
                    }
                }
            }

            // Handle subdirectories recursively
            string[] subdirectories = Directory.GetDirectories(sourceDirectory);
            foreach (string subdirectory in subdirectories)
            {
                AddDirectoryFilesToZip(subdirectory, zipOutputStream);
            }
        }

        // Method to decompress files from a ZIP file
        static void Decompress(string zipFilePath, string extractPath)
        {
            using (var zipInputStream = new ZipInputStream(File.OpenRead(zipFilePath)))
            {
                ZipEntry entry;
                // Read entries from the ZIP archive
                while ((entry = zipInputStream.GetNextEntry()) != null)
                {
                    string entryPath = Path.Combine(extractPath, entry.Name);

                    // Process files
                    if (entry.IsFile)
                    {
                        string directoryName = Path.GetDirectoryName(entryPath);
                        if (!Directory.Exists(directoryName))
                            Directory.CreateDirectory(directoryName);

                        using (var fileStream = File.Create(entryPath))
                        {
                            // Buffer for reading entries
                            byte[] buffer = new byte[4096];
                            int bytesRead;
                            // Read from ZIP stream and write to file
                            while ((bytesRead = zipInputStream.Read(buffer, 0, buffer.Length)) > 0)
                            {
                                fileStream.Write(buffer, 0, bytesRead);
                            }
                        }
                    }
                    else if (entry.IsDirectory) // Process directories
                    {
                        Directory.CreateDirectory(entryPath);
                    }
                }
            }
        }
    }
}

SharpZipLib a longtemps été un pilier dans la communauté de développement du langage .NET, fournissant des fonctionnalités essentielles pour travailler avec des archives compressées telles que ZIP, GZip, Tar et BZip2. Cependant, à mesure que la technologie évolue et que les développeurs recherchent des solutions plus avancées, certaines limitations de SharpZipLib sont devenues apparentes.

Limitations de SharpZipLib

  1. Complexité : L'API de SharpZipLib peut être lourde et verbeuse, obligeant les développeurs à écrire du code long pour effectuer des tâches simples telles que la création ou l'extraction d'archives ZIP.
  2. Absence de fonctionnalités modernes : SharpZipLib ne prend pas en charge les fonctionnalités et plateformes .NET modernes, ce qui le rend moins adapté aux environnements de développement contemporains.
  3. Documentation limitée : Bien que SharpZipLib existe depuis longtemps, sa documentation est souvent lacunaire et obsolète, ce qui rend difficile pour les développeurs de démarrer ou de résoudre les problèmes.
  4. Performances : Les performances de SharpZipLib peuvent ne pas toujours répondre aux attentes des développeurs, en particulier lors du traitement d'archives volumineuses ou complexes.

IronZIP : combler les lacunes

IronZIP Documentation, développé par Iron Software Overview, est une solution moderne et efficace pour la gestion des archives ZIP dans les applications .NET. Avec son API intuitive, les développeurs peuvent facilement créer, lire et manipuler des fichiers ZIP. IronZIP offre des fonctionnalités avancées comme des niveaux de compression personnalisables et la protection par mot de passe, garantissant flexibilité et sécurité des données. Compatible avec les dernières versions de .NET et optimisé pour les performances, IronZIP simplifie les tâches de gestion des archives avec aisance et efficacité.

Sharpziplib Extraire ZIP C# (Comment ça marche pour les développeurs) : Figure 4 - IronZIP for .NET : La bibliothèque d'archives Zip C#

Caractéristiques d'IronZIP émerge comme une solution robuste et moderne qui répond aux lacunes de SharpZipLib. Voici comment IronZIP comble ces lacunes :

  1. API avancée : IronZIP offre une API intuitive et conviviale pour les développeurs qui simplifie les tâches de gestion des archives. Avec IronZIP, les développeurs peuvent réaliser des opérations complexes en seulement quelques lignes de code, réduisant ainsi le temps et l'effort de développement.
  2. Prise en charge complète de .NET : IronZIP prend entièrement en charge les dernières versions de .NET , notamment .NET Core, .NET Standard et .NET Framework, assurant ainsi la compatibilité avec les environnements et plateformes de développement modernes.
  3. Documentation complète : IronZIP est fourni avec une documentation complète et des exemples, permettant aux développeurs de saisir rapidement ses fonctionnalités et ses capacités. La documentation étendue aide à réduire la courbe d'apprentissage et facilite l'intégration rapide dans les projets.
  4. Contrôle du niveau de compression : IronZIP offre aux développeurs un contrôle sur le niveau de compression, leur permettant d'ajuster ce niveau en fonction de leurs besoins. Cette fonctionnalité permet aux développeurs d'équilibrer la réduction de la taille des fichiers et la vitesse de compression.
  5. Protection par mot de passe : IronZIP prend en charge la protection par mot de passe des archives ZIP, renforçant ainsi la sécurité des données sensibles. Les développeurs peuvent facilement crypter les archives ZIP avec des mots de passe traditionnels, AES128 et AES256, garantissant que seuls les utilisateurs autorisés peuvent accéder au contenu de l'archive.
  6. Optimisation des performances : IronZIP est optimisé pour les performances, offrant des vitesses de compression et d'extraction plus rapides que SharpZipLib. Cette optimisation garantit que les développeurs peuvent manipuler efficacement de grandes quantités de données sans compromettre les performances.

Explorez la documentation d'IronZIP pour plus d'informations sur la prise en main d'IronZIP. Les exemples de code d'IronZIP vous aident à démarrer sans aucune difficulté.

Installation d'IronZIP

Voici les étapes pour intégrer XDocument avec IronPDF :

  • Ouvrez Visual Studio IDE ou votre IDE préféré.

  • Dans le menu Outils, accédez à la console du gestionnaire de packages NuGet.

  • Exécutez la commande suivante pour installer le package IronZIP :

    PM > Install-Package IronPdf

  • Alternativement, vous pouvez l'installer depuis le gestionnaire de packages NuGet pour Solutions.

  • Sélectionnez IronZIP depuis l'onglet de recherche de NuGet et cliquez sur installer :

Sharpziplib Extract ZIP C# (How It Works For Developers): Figure 5 - Install IronZIP using the Manage NuGet Package for Solution by searching "IronZIP" in the search bar of NuGet Package Manager, then select the project and click on the Install button.

Exemple de code

Le code source suivant montre comment IronZIP crée efficacement un fichier ZIP avec IronZIP en toute simplicité et en seulement quelques lignes de code. Ici, vous pouvez ajouter plusieurs fichiers à l'archive ZIP protégée par mot de passe en fournissant les noms de fichiers dans le dossier spécifié. Lors de la création de l'objet IronZipArchive, vous pouvez également spécifier le niveau de compression pour réduire la taille du fichier de sortie.

using IronZip;
using IronZip.Enum;

class Program
{
    static void Main()
    {
        // Create an empty ZIP with the highest compression
        using (var archive = new IronZipArchive(9))
        {
            // Password protect the ZIP (Support AES128 & AES256)
            archive.SetPassword("P@ssw0rd", EncryptionMethods.Traditional);
            archive.AddArchiveEntry("./assets/file1.txt");
            archive.AddArchiveEntry("./assets/file2.txt");
            // Export the ZIP
            archive.SaveAs("output.zip");
        }
    }
}

Fichier ZIP de sortie

Sharpziplib Extraire ZIP C# (Comment ça marche pour les développeurs) : Figure 6 - Sortie : Archive Zip avec mot de passe créée en utilisant IronZIP.

Conclusion

Aperçu de SharpZipLib émerge comme une bibliothèque de compression puissante pour .NET, offrant un riche ensemble de fonctionnalités et capacités pour gérer les fichiers compressés efficacement. Que ce soit pour compresser des données pour le stockage, archiver des fichiers, ou optimiser l'utilisation de la bande passante dans les services web, SharpZipLib fournit les outils nécessaires pour simplifier les opérations de compression et de décompression. Avec sa nature open-source, sa compatibilité multiplateforme, et sa fonctionnalité robuste, SharpZipLib reste un choix de premier ordre pour les développeurs à la recherche d'une solution fiable pour les tâches de compression dans leurs applications .NET.

Bien que SharpZipLib ait été un choix fiable pour travailler avec des archives compressées dans les applications .NET, ses limitations sont devenues de plus en plus apparentes dans le paysage de développement actuel. Explorez l'API d'IronZIP prend le relais pour combler les lacunes laissées par SharpZipLib, offrant une alternative moderne et riche en fonctionnalités qui privilégie la facilité d'utilisation, la performance et la compatibilité. Avec IronZIP, les développeurs peuvent débloquer de nouvelles possibilités dans la gestion des archives et rationaliser leur flux de travail de développement avec des capacités avancées et une API intuitive.

IronZIP fournit une vue d'ensemble de licence d'essai gratuite. Téléchargez la bibliothèque depuis IronZIP Downloads et essayez-la.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $