Create a Flat ZIP Archive in C#

Úvod

zení souborů ZIP může být náročné, zejména když obsahují nested archives. Tento průvodce vás prochází procesem flattening ZIP struktury tím, že extrahujete všechny interní ZIP archivy do jednoho archivu pomocí Aspose.ZIP pro .NET.

Proč vytvořit plochý zip?

Vytvoření plochého archivu ZIP nabízí několik výhod:

  • Zjednodušuje správu souborů ZIP: snižuje složitost při zpracování více soubor.
  • Extraktuje veškerý obsah ZIP do jednoho souboru: Konsoliduje soubory pro snadnější přístup.
  • Reduce redundantní složkové struktury: Streamline organizace soubor.

Tabulka obsahů

Nastavení zpracování archivu ZIP v C#

Pro efektivní zpracování nested ZIP archivů, budeme používat [Aspose.ZIP pro .NET](https://products.aspose.net/zip:

  • Automatická extrakce ZIP a re-komprese.
  • Podpora pro více archivních formátů: ZIP, TAR, GZip a dal.
  • inné zpracování velkých archiv.

Instalace

Knihovnu můžete snadno nainstalovat prostřednictvím NuGet:

PM> Install-Package Aspose.Zip

Alternativně, můžete stáhnout DLL z Stránka Aspose Downloads.

2. kroky k vytvoření plochého ZIP archivu

Zvažte následující nested ZIP strukturu:

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

Po pletení budou všechny vnitřní ZIP obsahy konsolidovány do mateřského ZIP:

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

Kódový příklad

Zde je, jak můžete automatizovat extrakci nahromaděných ZIP soubor:

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

Tato metoda efektivně automatizuje nestované ZIP souborové extrakce, což zajišťuje hladký pracovní tok s funkcemi C# Archive.

spora Flattened ZIP souboru

Jakmile jste extrahovali nahromaděné ZIP obsahy, uložte nahromaděný ZIP soubor pomocí následující řady kódu:

parentZip.Save("flattened.zip");

To zajišťuje, že máte jediný ZIP archiv bez nektovaných složek, což usnadňuje správu souborů prostřednictvím C# Zip Compression techniky.

4.Batch zpracování Multiple ZIP Archives

Pokud potřebujete platené více ZIP archivů umístěné v konkrétním složce, můžete použít následující kódový snímek:

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

Tato metoda umožňuje automatizovanou zpracování ZIP, což vám ušetří čas a úsilí při efektivním nakládání s C# Zip soubory.

Získat bezplatnou licenci API

Chcete-li odemknout plné funkce Aspose.ZIP, můžete požádat o bezplatnou dočasnou licenci.

Pro podrobnou dokumentaci navštivte Aspose.ZIP Guide ** . Pokud máte jakékoli dotazy, buďte svobodní se zapojit do komunity na ** Aspose forum.

Závěry a dodatečné zdroje

Shrnutí

V tomto průvodci jsme pokrývali:

  • Jak rozptýlit ZIP soubory v C#
  • Vyjmutí nestěných ZIP archiv
  • Zachovávejte poslední archiv ZIP
  • Zpracování více ZIP souborů najednou

S Aspose.ZIP pro .NET, můžete efektivně vkládat a spravovat ZIP archivy ve svých aplikacích. Začněte optimalizovat pracovní toky zpracování ZIP dnes!

Další zdroje

Pro vývojáře, kteří chtějí zlepšit své porozumění, zvážit tyto témata:

  • C# Create Zip Archive: Prozkoumejte různé metody pro vytváření souborů ZIP ve vašich aplikacích C.
  • Vytvořte ZIP soubor C# .NET Core: Zaměřte se na .NET Core, dozvědět se o nejlepších postupech pro vytváření zip soubory.
  • C# Extract File z ZIP: krok za krokem pokyny pro extrahování specifických souborů z archivů Zip.
  • C# Decompress ZIP: Podrobný průvodce k dekompresování souborů zIP pomocí C#.
  • Jak zipovat soubory v .NET s C#: Kompletní procházka na zipování souborů pomocí .NET a C#.
  • C# ZipArchive Extract to Directory: Zjistěte, jak používat ziparchiv pro efektivní extrakci souborů.
  • C# Zipping Soubory: Prozkoumejte metody pro zipping souborů v C# pro zlepšení výkonu a pohodlí.
  • .NET Core Create Zip File: Podrobný pohled na vytváření ZIP souborů pomocí .NET core a C#.
  • C# Zip: Zjistěte, jak efektivně zpracovávat ZIP soubory v C#.
  • C# Zip Example: Zkontrolujte praktické příklady zippingových souborů v C#, abyste zjednodušili proces vývoje.
  • .NET Core Zip: Nejlepší postupy pro práci s ZIP soubory v aplikacích .NET core.
  • C# Open ZIP: Pochopte, jak efektivně otevřít a číst soubory zIP.
  • C# Přečtěte si soubory z ZIP: Techniky pro čtení specifických souborů uložených v archivech zIP.
  • C# Zip Lists: Zjistěte, jak zip seznamy souborů v aplikacích.
  • C# Zipping Soubory: Podívejte se blíže na metody pro zipping soubory.
  • .NET Core Zip: Vstup do správy souborů .NET core ZIP.
  • C# Archive: Naučte se využívat archivní třídu pro komplexní zpracování ZIP.

More in this category