Create a Flat ZIP Archive in C#

Introduction

Gérer les fichiers ZIP peut être difficile, en particulier lorsqu’ils contiennent des fichiers nested. Ce guide vous accompagne par le processus de flattening structures ZIP en extraisant tous les fichiers ZIP intérieurs dans un seul archive en utilisant Aspose.ZIP pour .NET.

Pourquoi créer un ZIP ?

Créer un fichier ZIP plat offre plusieurs avantages:

  • Simplifie la gestion des fichiers ZIP: Réduit la complexité lors de la gestion de plusieurs fichiers.
  • Extracte tous les contenus ZIP nés dans un seul archive: Consolide les fichiers pour un accès plus facile.
  • Reduit les structures de dossiers redondantes: Streamlines l’organisation des fichiers.

Table des contenus

Démarrer le traitement des archives ZIP en C#

Pour traiter efficacement les archives ZIP , nous utiliserons Aspose.ZIP pour .NET. Cette bibliothèque puissante fournit:

  • Extraction ZIP automatique et récompression.
  • Support pour plusieurs formats d’archive: ZIP, TAR, GZip, et plus encore.
  • Traitement efficace des grands archives.

インストール

Vous pouvez facilement installer la bibliothèque via NuGet :

PM> Install-Package Aspose.Zip

Alternativement, vous pouvez télécharger le DLL de la Page de téléchargement Aspose.

Étapes pour créer un fichier ZIP plat

Considérons la structure ZIP suivante :

parent.zip
 ├ first.txt
 ├ inner.zip
 │ ├ file1.exe
 │ └ data.bin
 └ picture.gif

Après la flatterie, tous les contenus ZIP internes seront consolidés dans le ZIP maternel:

flattened.zip
 ├ first.txt
 ├ picture.gif
 ├ file1.exe
 └ data.bin

Code Exemple

Voici comment vous pouvez automatiser l’extraction de fichiers ZIP nés:

// Load the parent ZIP file
using (Archive parentZip = new Archive("parent.zip"))
{
    List<ArchiveEntry> toDelete = new List<ArchiveEntry>();
    List<string> newEntryNames = new List<string>();
    List<MemoryStream> newStreams = new List<MemoryStream>();

    foreach (ArchiveEntry entry in parentZip.Entries)
    {
        if (entry.Name.EndsWith(".zip", StringComparison.OrdinalIgnoreCase))
        {
            toDelete.Add(entry);
            using (MemoryStream zipStream = new MemoryStream())
            {
                entry.Open().CopyTo(zipStream);
                zipStream.Position = 0;
                using (Archive innerZip = new Archive(zipStream))
                {
                    foreach (ArchiveEntry innerEntry in innerZip.Entries)
                    {
                        using (MemoryStream entryStream = new MemoryStream())
                        {
                            innerEntry.Open().CopyTo(entryStream);
                            newEntryNames.Add(innerEntry.Name);
                            newStreams.Add(entryStream);
                        }
                    }
                }
            }
        }
    }

    foreach (var entry in toDelete)
        parentZip.DeleteEntry(entry);

    for (int i = 0; i < newEntryNames.Count; i++)
        parentZip.CreateEntry(newEntryNames[i], newStreams[i]);

    parentZip.Save("flattened.zip");
}

Cette méthode optimise efficacement l’extraction automatique des fichiers ZIP, assurant un flux de travail fluide avec les fonctionnalités C# Archive.

Économiser le fichier ZIP Flattened

Une fois que vous avez extrait les contenus ZIP nés, sauvez le fichier ZIP flatté en utilisant la ligne de code suivante:

parentZip.Save("flattened.zip");

Cela vous assure d’avoir un fichier ZIP unique sans dossiers nés**, ce qui rend la gestion des fichiers beaucoup plus facile grâce aux techniques de compression Zip C#.

4.Batch Traitement Multiple ZIP Archives

Si vous avez besoin de flatte plusieurs archives ZIP situées dans un dossier spécifique, vous pouvez utiliser le code suivant:

string[] files = Directory.GetFiles("zip_folder", "*.zip");
foreach (string file in files)
{
    using (Archive archive = new Archive(file))
    {
        archive.ExtractToDirectory("output_folder");
    }
}

Cette méthode permet un traitement ZIP de masse automatisé**, vous économisant du temps et de l’effort tout en gérant efficacement les fichiers C# Zip**.

Obtenir une licence API gratuite

Pour désactiver les fonctionnalités complètes d’Aspose.ZIP, vous pouvez demander une (licence temporaire gratuite) (https://purchase.aspose.com/licencement temporel).

Pour la documentation complète, visitez le Aspose.ZIP Guide. Si vous avez des questions, soyez libre d’engager avec la communauté sur le Forum de l’Aspose.

Conclusion et ressources supplémentaires

Résumé

Dans ce guide, nous couvrons :

  • Comment flatter les fichiers ZIP en C#
  • Extrait des archives ZIP nestées
  • Save le dernier fichier ZIP
  • Traitement de plusieurs fichiers ZIP à la fois

Avec Aspose.ZIP pour .NET, vous pouvez efficacement extraire et gérer les fichiers ZIP dans vos applications.

Risorse aggiuntive

Pour les développeurs qui cherchent à améliorer leur compréhension, considérez ces sujets:

  • C# Create Zip Archive: Explorez différentes méthodes pour créer des fichiers ZIP dans vos applications C#.
  • Créez le fichier ZIP C# .NET Core: En se concentrant sur le .Net Core, apprenez les meilleures pratiques pour la création de fichiers zIP.
  • C# Extrait des fichiers de ZIP: instructions étape par étabe sur l’extraction de ficher spécifiques des archives de zIP.
  • C# Decompress ZIP: Un guide détaillé sur la décompression des fichiers Zip en utilisant C#.
  • Comment Zip Fichiers dans .NET avec C#: Un parcours complet sur les fichières de zippage en utilisant .Net et C#.
  • C# ZipArchive Extrait to Directory: Découvrez comment utiliser ZIPArhive pour l’extraction efficace des fichiers.
  • C# Zipping Files: Explorez les méthodes de zipping des fichiers en C# pour améliorer la performance et la commodité.
  • .NET Core Create Zip File: Un aperçu détaillé de la création de fichiers ZIP en utilisant .NET core et C#.
  • C# Zip: Apprenez à gérer les fichiers ZIP efficacement en C#.
  • C# Zip Example: Vérifier les exemples pratiques de fichiers de zipping en C# pour simplifier votre processus de développement.
  • .NET Core Zip: Les meilleures pratiques pour travailler avec les fichiers ZIP dans les applications .NET core.
  • C# Open ZIP: Comprendre comment ouvrir et lire efficacement les fichiers zip.
  • C# Lire le fichier de ZIP: Techniques pour la lecture de fichiers spécifiques stockés dans les archives zip.
  • C# Zip Lists: Découvrez comment zip les listes de fichiers sans fil dans vos applications.
  • C# Zipping Fichiers: Une vue plus approfondie sur les méthodes de zipping.
  • .NET Core Zip: Introduction à la gestion des fichiers .NET core ZIP.
  • C# Archive: Apprenez à utiliser la classe Archive pour un traitement ZIP complet.

More in this category