Créer un ZIP en C#

Introduction aux archives ZIP

Les archives ZIP sont essentielles pour compresser et consolider un ou plusieurs fichiers ou dossiers en un seul conteneur. Ce format réduit non seulement la taille des fichiers pour le stockage et la transmission, mais conserve également les informations de métadonnées, facilitant ainsi la gestion des fichiers. Les archives ZIP sont largement utilisées dans les applications de bureau et web pour des tâches telles que le téléchargement, le partage et la sécurisation des fichiers par cryptage.

Dans cet article, nous allons explorer diverses méthodes pour créer des archives ZIP de manière programmatique en C#. Vous apprendrez à :

Bibliothèque ZIP C#

Aspose.ZIP pour .NET est une API robuste conçue pour zipper et dézipper des fichiers et des dossiers au sein des applications .NET. Elle offre des fonctionnalités telles que le cryptage AES pour sécuriser vos fichiers dans les archives ZIP. Vous pouvez facilement installer l’API depuis NuGet ou télécharger les binaires depuis la section Téléchargements.

Créer une archive ZIP en C#

Pour compresser un fichier dans une archive ZIP, suivez ces étapes :

  1. Créez un objet FileStream pour l’archive ZIP de sortie.
  2. Ouvrez le fichier source avec un objet FileStream.
  3. Instanciez la classe Archive.
  4. Ajoutez le fichier à l’archive en utilisant la méthode Archive.CreateEntry(string, FileStream).
  5. Enregistrez l’archive ZIP avec la méthode Archive.Save(FileStream).

Voici un exemple de code démontrant comment ajouter un fichier à une archive ZIP en C# :

Ajouter plusieurs fichiers à une archive ZIP en C#

Pour ajouter plusieurs fichiers à une archive ZIP, vous pouvez choisir l’une des méthodes suivantes :

Utiliser FileStream

Utilisez la classe FileStream pour ajouter plusieurs fichiers à l’archive ZIP avec la méthode Archive.CreateEntry(String, FileStream). Voici comment :

Utiliser FileInfo

Alternativement, vous pouvez utiliser la classe FileInfo pour ajouter des fichiers. Cette méthode charge les fichiers en utilisant la classe FileInfo et les ajoute à l’archive ZIP avec la méthode Archive.CreateEntry(String, FileInfo). Voir l’exemple ci-dessous :

Utiliser le chemin de fichier

Vous pouvez également ajouter des fichiers directement en fournissant leurs chemins à la méthode Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings). Voici comment :

Ajouter des dossiers à une archive ZIP en C#

Ajouter un dossier à une archive ZIP peut être un moyen pratique d’inclure plusieurs fichiers. Pour zipper un dossier en C#, suivez ces étapes :

  1. Créez un objet FileStream pour l’archive ZIP de sortie.
  2. Instanciez la classe Archive.
  3. Utilisez la classe DirectoryInfo pour spécifier le dossier à zipper.
  4. Ajoutez le dossier à l’archive ZIP en utilisant la méthode Archive.CreateEntries(DirectoryInfo).
  5. Enregistrez l’archive ZIP avec la méthode Archive.Save(FileStream).

Voici un exemple de code qui démontre comment ajouter un dossier à une archive ZIP en C# :

Créer un ZIP protégé par mot de passe en utilisant ZipCrypto en C#

Pour améliorer la sécurité, vous pouvez créer des archives ZIP protégées par mot de passe en utilisant le cryptage ZipCrypto. Cela se fait en utilisant la classe ArchiveEntrySettings dans le constructeur de l’Archive, ce qui vous permet de spécifier le type de cryptage.

Voici un exemple de comment créer une archive ZIP protégée par mot de passe en utilisant ZipCrypto en C# :

Créer un ZIP protégé par mot de passe avec cryptage AES

La bibliothèque Aspose.ZIP pour .NET prend également en charge le cryptage AES pour sécuriser les archives ZIP. Vous pouvez choisir parmi les méthodes de cryptage AES suivantes :

  • AES128
  • AES192
  • AES256

Pour appliquer le cryptage AES, utilisez la classe AesEcryptionSettings. Voici comment créer un ZIP protégé par mot de passe avec cryptage AES en C# :

Définir le mode de compression parallèle

Pour les cas impliquant plusieurs entrées, vous pouvez configurer l’API pour la compression parallèle en utilisant la classe ParallelOptions. Aspose.ZIP pour .NET fournit plusieurs modes de compression parallèle :

  • Jamais - Ne pas compresser en parallèle.
  • Toujours - Toujours compresser en parallèle (faites attention aux problèmes de mémoire).
  • Auto - Décider automatiquement d’utiliser ou non la compression parallèle en fonction des entrées.

Voici un exemple démontrant comment définir le mode de compression parallèle lors du zip de plusieurs fichiers :

En savoir plus sur la bibliothèque ZIP C# .NET

Plongez plus profondément dans notre API ZIP C# avec les ressources suivantes :

Essayer les archives ZIP en ligne

Explorez notre application en ligne gratuite, basée sur Aspose.ZIP pour .NET, pour compresser facilement des fichiers en archives ZIP.

Conclusion

Dans cet article, vous avez appris comment créer des archives ZIP de manière programmatique en C#. Les exemples de code fournis démontrent comment ajouter des fichiers et des dossiers aux archives ZIP. De plus, nous avons couvert comment créer des archives ZIP protégées par mot de passe en utilisant à la fois les méthodes ZipCrypto et AES. Nous avons également discuté de la compression parallèle pour gérer efficacement les fichiers volumineux. Si vous avez des questions ou avez besoin d’une assistance supplémentaire, n’hésitez pas à nous contacter via notre forum.

Voir aussi

Décompresser ou extraire des fichiers en utilisant C#Dézipper des fichiers dans des archives ZIP en utilisant C#Créer des archives 7z (7-Zip) en C# .NET
Ouvrir ou extraire un fichier 7z (7zip) en C# .NETCréer et extraire des archives GZip en utilisant C#Convertir des fichiers RAR en archive ZIP en C#
Convertir des archives ZIP en TAR en C#Créer une archive ZIP plate en C#Créer une archive auto-extractible en C#
Créer des fichiers TAR.GZ et TAR.XZ en C#Supprimer des fichiers dans une archive ZIP en C#Extraire des archives ZIP imbriquées en C#
Fusionner plusieurs archives ZIP ou TAR en C#Comment créer des fichiers ZIPExtraire 7z en ligne