Créer une archive ZIP en C#
Compression efficace en .NET : empaquetez des fichiers, réduisez la taille et automatisez l’archivage.
Comment compresser des fichiers et des dossiers en ZIP
Compresser le contenu d’un fichier ou d’un dossier dans une archive ZIP est une étape classique pour gagner de la place, standardiser l’échange de données et simplifier les sauvegardes. Avec Aspose.Zip pour .NET, vous pouvez créer et alimenter des archives directement en C# (fichiers, dossiers entiers, lots), contrôler le niveau de compression et activer la protection par mot de passe ou le chiffrement AES. L’API s’intègre facilement à des traitements côté serveur, des outils internes, des pipelines CI/CD et des applications desktop.
Créer une archive ZIP d'images en C#
Pour archiver des images (BMP, JPG, GIF, TIFF, etc.), le flux est simple : créez un
objet FileStream
pour la sortie, ouvrez vos images source, puis utilisez la classe
Archive
. Ajoutez chaque fichier via la
méthode CreateEntry
et finalisez avec la
méthode Save
.
Exemple de code C# pour créer une archive ZIP contenant des images.
// For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
using (FileStream zipFile = File.Open(dataDir + "CompressSingleFile_out.zip", FileMode.Create))
{
//File to be added to archive
using (FileStream source1 = File.Open(dataDir + "picture123.png", FileMode.Open, FileAccess.Read))
{
using (var archive = new Archive(new ArchiveEntrySettings()))
{
archive.CreateEntry("picture123.png", source1);
archive.Save(zipFile);
}
}
}
Convertir un PDF en ZIP en C#
Le principe est identique pour un PDF : instanciez Archive, ajoutez le fichier avec CreateEntry, puis appelez Save pour écrire l’archive ZIP. Vous pouvez aussi ajouter plusieurs documents, choisir de stocker sans compression, conserver une structure de dossiers, ou ajuster les options selon votre scénario d’archivage.
Exemple C# pour créer une archive ZIP à partir de fichiers PDF.
var dir = "full directory path";
using (var arch = new Archive())
{
arch.CreateEntry("filename.pdf", dir+"file.pdf");
arch.Save(dir+"pdf-files-archived_result.zip");
}
Compresser plusieurs fichiers avec mot de passe
Aspose.Zip prend en charge l’archivage de plusieurs fichiers et dossiers avec différents modes de protection, dont le chiffrement traditionnel et AES (AES128, AES192, AES256). Le flux reste le même (ajout d’entrées + sauvegarde), avec une configuration de chiffrement adaptée à votre besoin.
Exemple C# pour archiver plusieurs fichiers avec chiffrement.
using (FileStream zipFile = File.Open(dataDir + "CompressWithTraditionalEncryption_out.zip", FileMode.Create))
{
using (FileStream file1 = File.Open(dataDir + "alice29.txt", FileMode.Open, FileAccess.Read))
{
using (FileStream file2 = File.Open(dataDir + "asyoulike.txt", FileMode.Open, FileAccess.Read))
{
using (var archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("p@s$"))))
{
archive.CreateEntry("alice29.txt", file1);
archive.CreateEntry("asyoulik3.txt", file2);
archive.Save(zipFile);
}
}
}
}
Documentation - fonctionnalités de compression dans Aspose.ZIP pour .NET
Aspose.Zip pour .NET est conçu pour gérer la compression d’archives de manière fiable, avec une API claire et des performances adaptées aux applications d’entreprise. Vous pouvez manipuler des archives et convertir entre plusieurs formats, tout en gardant le contrôle sur la structure des entrées, les flux I/O et les options de sécurité. Le namespace ZIP regroupe les classes principales pour travailler avec des archives ZIP et d’autres entités liées à l’archivage.
Autres formats pris en charge pour la compression d'archives
Vous pouvez également compresser des fichiers PNG, PPT, MPX, MP3, GPX, HTML, DOCX, JPEG, XML et bien d’autres formats dans une archive ZIP.