Introduction

Les fichiers ZIP sont essentiels à l’organisation et à la compression des données, mais comment modifier leur contenu par programmation ? La solution réside dans Aspose.Zip pour .NET, une bibliothèque robuste qui simplifie la manipulation des fichiers ZIP avec C#. Dans ce tutoriel, nous vous guiderons étape par étape pour extraire, supprimer et ajouter des entrées aux fichiers ZIP.

Prérequis

Avant de commencer, assurez-vous d’avoir les éléments suivants :

  1. Bibliothèque Aspose.Zip pour .NET : installez la bibliothèque dans votre projet. Vous pouvez la télécharger. ici.

  2. Répertoire de documents : créez un répertoire pour stocker vos fichiers zip. Remplacer "Your Document Directory" dans le code avec votre chemin réel.

Importer les espaces de noms nécessaires

Commencez par importer les espaces de noms requis :

using Aspose.Zip;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

Étape 1 : Ouvrir le fichier ZIP externe

Commencez par ouvrir votre fichier zip principal (zip externe) :

string dataDir = "Your Data Directory";
using (Archive outer = new Archive(dataDir + "outer.zip"))
{
    // Procéder à l'identification des entrées zip internes
}

Étape 2 : Identifier les entrées du code postal interne

Ensuite, identifiez et préparez-vous à supprimer tous les fichiers zip internes :

List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();
List<string> namesToInsert = new List<string>();
List<MemoryStream> contentToInsert = new List<MemoryStream>();

foreach (ArchiveEntry entry in outer.Entries)
{
    if (entry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase))
    {
        entriesToDelete.Add(entry);
        
        using (MemoryStream innerCompressed = new MemoryStream())
        {
            entry.Open().CopyTo(innerCompressed);
            
            // Extraire les entrées internes
            using (Archive inner = new Archive(innerCompressed))
            {
                foreach (ArchiveEntry ie in inner.Entries)
                {
                    namesToInsert.Add(ie.Name);
                    MemoryStream content = new MemoryStream();
                    ie.Open().CopyTo(content);
                    contentToInsert.Add(content);
                }
            }
        }
    }
}

Étape 3 : Supprimer les entrées des archives internes

Une fois que vous avez rassemblé les entrées dont vous avez besoin, supprimez les entrées zip internes :

foreach (ArchiveEntry e in entriesToDelete)
{
    outer.DeleteEntry(e);
}

Étape 4 : Ajouter les entrées modifiées au code postal externe

Vous pouvez maintenant ajouter les entrées nouvellement extraites dans votre fichier zip externe :

for (int i = 0; i < namesToInsert.Count; i++)
{
    outer.CreateEntry(namesToInsert[i], contentToInsert[i]);
}

Étape 5 : Enregistrez le fichier ZIP modifié

Enfin, enregistrez vos modifications dans un nouveau fichier zip :

outer.Save(dataDir + "flatten.zip");

Conclusion

Aspose.Zip pour .NET offre un moyen simple et puissant de manipuler des fichiers ZIP par programmation. Ce tutoriel aborde l’extraction, la suppression et l’ajout d’entrées dans un fichier ZIP, illustrant ainsi la polyvalence de la bibliothèque. Explorez différents scénarios et améliorez vos compétences en manipulation de fichiers !

FAQ

Puis-je utiliser Aspose.Zip pour .NET avec d’autres langages de programmation ?

Aspose.Zip est principalement conçu pour les applications .NET, mais Aspose propose des bibliothèques similaires pour divers langages de programmation.

Existe-t-il un essai gratuit disponible pour Aspose.Zip pour .NET ?

Oui, un essai gratuit est disponible en téléchargement ici.

Comment obtenir de l’assistance pour Aspose.Zip pour .NET ?

Visitez le Forum Aspose.Zip pour du soutien et des discussions.

Puis-je acheter une licence temporaire pour Aspose.Zip pour .NET ?

Oui, vous pouvez obtenir un permis temporaire ici.

Où puis-je trouver la documentation d’Aspose.Zip pour .NET ?

La documentation complète est disponible ici.