Často se setkáváme se scénářem, kdy je více ZIP archivů zapouzdřeno do jiného ZIP. V takových případech musíte nejprve extrahovat nadřazený ZIP a poté vnořené archivy jeden po druhém. Abychom vám to usnadnili, v tomto článku předvedeme, jak extrahovat vnořené archivy ZIP v C# .NET bez psaní složitého kódu.

C# .NET API pro extrahování vnořených ZIP archivů

K rozbalení vnořených ZIP archivů použijeme Aspose.ZIP for .NET. Rozhraní API je navrženo k provádění operací archivace z aplikací .NET. Umožňuje bezproblémově vytvářet a manipulovat s oblíbenými archivními formáty. Můžete si stáhnout DLL API nebo ji nainstalovat pomocí NuGet.

PM> Install-Package Aspose.Zip

Extrahovat vnořené archivy ZIP v C#

Abychom demonstrovali extrakci vnořených archivů ZIP, vytvořili jsme následující soubor ZIP, který obsahuje 3 položky.

Vnořené archivy ZIP

Vnořené archivy ZIP

Každý vnořený ZIP archiv rozbalíme a jeho obsah uložíme do samostatné složky. Níže jsou uvedeny kroky k extrahování vnořených archivů ZIP v C#.

Následující ukázka kódu ukazuje, jak rozbalit vnořené archivy ZIP v C# .NET.

// Otevřete soubor ZIP ve streamu souborů
using (FileStream zipFile = File.Open("Archives/nested-archive.zip", FileMode.Open))
{
    // Načtěte soubor ZIP pomocí třídy Archive
    using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
    {
        // Přístup ke každému záznamu v archivu ZIP
        foreach(ArchiveEntry entry in archive.Entries)
        {
            if(entry.Name.ToLower().Contains(".zip"))
            {
                // Vytvořte paměťový stream pro vnořený archiv
                MemoryStream nestedArchiveStream = new MemoryStream();

                // Zkopírujte archiv do paměťového streamu
                entry.Open().CopyTo(nestedArchiveStream);

                // Načtěte vnořený archiv ze streamu paměti
                using (var nestedArchive = new Archive(nestedArchiveStream))
                {
                    // Rozbalte archiv na disk.
                    nestedArchive.ExtractToDirectory("Archives/Extracted/"+entry.Name);
                }                               

            }

        } 
    }
}

Následuje snímek obrazovky extrahovaných archivů ZIP.

Extrahování vnořených ZIP archivů v C# .NET

Rozbalené vnořené archivy

Získejte bezplatnou licenci API

Můžete získat bezplatnou dočasnou licenci k používání Aspose.ZIP pro .NET bez omezení hodnocení.

Závěr

V tomto článku jste se naučili, jak extrahovat vnořené archivy ZIP v C#. Podrobný průvodce a ukázka kódu ukazují, jak rozbalit každý vnořený archiv do samostatné složky. Kromě toho můžete navštívit dokumentaci a prozkoumat další funkce Aspose.ZIP pro .NET. Své dotazy můžete klást také prostřednictvím našeho fóra.

Viz také