Create a Flat ZIP Archive in C#

Uvod

Upravljanje ZIP datotekama može biti izazovno, pogotovo kada sadrže nested arhive.Ovaj vodič će vas voditi kroz proces flattening zip strukture uklanjanjem svih inner Zip arhiva u jedan arhiv pomoću Aspose.ZIP za .NET.

Zašto napraviti Flat ZIP?

Stvaranje ravnog ZIP arhiva nudi nekoliko prednosti:

  • pojednostavljuje upravljanje ZIP datotekom: Smanjuje složenost prilikom rukovanja višestrukim datotekama.
  • Izvaditi sve nestane ZIP sadržaje u jedan arhiv: Konsolidira datoteke za lakši pristup.
  • Smanjuje redundantne strukture dosjea: Streamline organizaciju datoteka.

Tablica sadržaja

Sastavljanje obrade ZIP arhiva u C#

Da bismo učinkovito obrađivali nested ZIP arhive, koristimo [Aspose.ZIP za .NET](https://products.aspose.net/zip:

  • Automatizirana ekstrakcija ZIP-a i ponovna kompresija.
  • Podrška za više arhivskih formata: ZIP, TAR, GZip i još mnogo toga.
  • Učinkovita obrada velikih arhiva.

instalacija

Knjižnicu možete lako instalirati putem NuGeta:

PM> Install-Package Aspose.Zip

Alternativno, možete preuzeti DLL iz Sljedeći Članak Aspose Downloads.

Koraki za stvaranje Flat ZIP arhiva

Razmotrite sljedeću nested ZIP strukturu:

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

Nakon pletenja, sve unutarnje ZIP sadržaje će se konsolidirati u rodni ZIP:

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

Primjer kodova

Evo kako možete automatizirati ekstrakciju nestalih ZIP datoteka:

// 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");
}

Ova metoda učinkovito automatizira uklanjanje ZIP datoteke, osiguravajući glatak tok rada s C# Archive funkcijama.

3. spašavanje Flattened ZIP datoteke

Nakon što ste uklonili nestani ZIP sadržaj, sačuvajte pletenu ZIP datoteku pomoću sljedeće linije koda:

parentZip.Save("flattened.zip");

To osigurava da imate jedinstveni ZIP arhiv bez nestalih dosjea, što olakšava upravljanje datotekama kroz C# Zip Compression tehnike.

4.Batch Prerađivanje Multiple ZIP Archives

Ako želite plati više ZIP arhiva smještenih u određenom dosjeu, možete koristiti sljedeći kod snippet:

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

Ova metoda omogućuje automatiziranu obradu masovnog ZIP-a, štedajući vrijeme i napor dok učinkovito upravljate C# Zip datotekama.

Dobivanje besplatne API licence

Da biste otključili puno funkcije Aspose.ZIP, možete zatražiti besplatnu privremenu licenciju.

Za sveobuhvatnu dokumentaciju posjetite Aspose.ZIP Priručnik ** . Ako imate bilo kakvih pitanja, osjetite se slobodno da se uključite sa zajednicom na ** Aspose forum.

Završetak i dodatni resursi

sažetak

U ovom vodiču pokrivamo:

  • Kako raspršiti ZIP datoteke u C#
  • Izbacivanje nestiranih ZIP arhiva
  • Savjetovanje posljednjeg ZIP arhiva
  • Procesiranje više ZIP datoteka u isto vrijeme

Uz Aspose.ZIP za .NET, možete učinkovito ekstraktirati i upravljati ZIP arhivima u svojim aplikacijama!

Dodatni resursi

Za razvijatelje koji žele poboljšati svoje razumijevanje, razmislite o ovim temama:

  • C# Kreirajte Zip Archive: Istražite različite metode za stvaranje ZIP datoteka u vašim C# aplikacijama.
  • Stvorite ZIP datoteku C# .NET Core: S fokusom na .NET Core, naučite najbolje prakse za stvaranje zIP dosjea.
  • C# Izvlačenje datoteke iz ZIP-a: korak po korak upute o izvlačenju određenih datotek iz zIP arhiva.
  • C# Decompress ZIP: Detaljni vodič o dekompresije Zip datoteke pomoću C#.
  • Kako zipati datoteke u .NET-u s C#-om: Cjelovita šetnja na zipping datotekama pomoću.NET i C#.
  • C# ZipArchive Extract to Directory: Otkrijte kako koristiti ziparhive za učinkovitu ekstrakciju datoteke.
  • C# Zipping Files: Istražite metode za zipping datoteke u C# kako biste poboljšali performanse i udobnost.
  • .NET Core Create Zip File: Detaljni pogled na stvaranje ZIP datoteke pomoću .NET core i C#.
  • C# Zip: Saznajte kako učinkovito upravljati ZIP datotekama u C#.
  • C# Zip Example: Pregledajte praktične primjere zipping datoteke u C# kako biste usporili proces razvoja.
  • .NET Core Zip: Najbolje prakse za rad s ZIP datotekama u .NET core aplikacijama.
  • C# Open ZIP: Razumjeti kako učinkovito otvoriti i pročitati zip datoteke.
  • C# Pročitajte datoteku iz ZIP-a: Tehnike za čitanje određenih datotek pohranjenih u arhivima zIP.
  • C# Zip Lists: Saznajte kako zipsati popise datoteka bespomoćno u aplikacijama.
  • C# Zipping datoteke: Pročitajte više o metodama za zipping.
  • .NET Core Zip: Uvod u upravljanje datotekom .NET core ZIP.
  • C# Archive: Naučite iskoristiti Arhiv razred za sveobuhvatnu ZIP rukovanje.

More in this category