Při práci se ZIP archivy se můžete setkat se scénářem, kdy ZIP soubor obsahuje další ZIP soubory, čímž vytváří vnořenou strukturu. Pokud chcete tento proces zjednodušit extrakcí všech vnitřních ZIP archivů do vnějšího archivu, jste na správném místě. V tomto článku prozkoumáme jak vytvořit plochý ZIP archiv v C# pomocí výkonné Aspose.ZIP pro .NET.
Obsah
- Přehled .NET API pro vytváření plochých ZIP archivů
- Kroky pro vytvoření plochého ZIP archivu
- Získejte bezplatnou licenci API
- Závěr
- Viz také
Přehled .NET API pro vytváření plochých ZIP archivů
Pro vytváření plochých ZIP archivů využijeme knihovnu Aspose.ZIP pro .NET. Tento robustní archivační API vám umožňuje vytvářet a extrahovat různé formáty archivů, včetně ZIP, TAR, GZip a 7z. Tuto knihovnu si můžete snadno nainstalovat z NuGet nebo stáhnout její DLL z sekce ke stažení.
PM> Install-Package Aspose.Zip
Kroky pro vytvoření plochého ZIP archivu v C#
Abychom lépe porozuměli struktuře plochého ZIP archivu, zvažte následující příklad. Zpočátku máme ZIP archiv obsahující další ZIP archiv:
parent.zip
├ first.txt
├ inner.zip
│ ├ game.exe
│ └ subitem.bin
└ picture.gif
Po transformaci tohoto ZIP archivu do ploché struktury budou všechny položky z vnitřního ZIP extrahovány do rodičovského ZIP, což povede k následující struktuře:
flatten.zip
├ first.txt
├ picture.gif
├ game.exe
└ subitem.bin
Implementační kroky
Zde je, jak programově vytvořit plochý ZIP archiv v C#:
- Načtěte rodičovský ZIP archiv: Použijte třídu Archive k načtení rodičovského ZIP.
- Inicializujte seznamy: Vytvořte seznamy pro uložení:
- Položky k odstranění z rodičovského ZIP
- Extrahované položky a jejich názvy
- Procházejte položky archivu: Procházejte každou ArchiveEntry v rodičovském ZIP pomocí kolekce Archive.Entries.
- Zpracování každé položky:
- Zkontrolujte, zda je položka ZIP archiv pomocí
ArchiveEntry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase)
. - Pokud ano, přidejte ji do seznamu položek k odstranění.
- Otevřete položku do objektu MemoryStream pomocí
ArchiveEntry.Open().CopyTo(MemoryStream)
. - Procházejte položkami vnitřního ZIP archivu a proveďte následující:
- Přidejte název každé položky do seznamu položek k přidání.
- Načtěte každou položku do
MemoryStream
pomocíArchiveEntry.Open().CopyTo(MemoryStream)
. - Přidejte položku do seznamu položek k přidání do rodičovského ZIP.
- Zkontrolujte, zda je položka ZIP archiv pomocí
- Odstranění vnitřních ZIP položek: Procházejte seznam vnitřních ZIP archivů a odstraňte každou položku pomocí metody Archive.DeleteEntry(ArchiveEntry).
- Přidání nových položek do rodičovského ZIP: Procházejte seznam položek k přidání a zahrňte každou položku pomocí metody Archive.CreateEntry(String, Stream).
- Uložení rodičovského ZIP archivu: Nakonec uložte upravený rodičovský ZIP archiv pomocí metody Archive.Save(String).
Zde je ukázka kódu, která demonstruje, jak vytvořit plochý ZIP archiv v C#:
Získejte bezplatnou licenci API
Můžete získat bezplatnou dočasnou licenci pro použití Aspose.ZIP pro .NET bez jakýchkoli hodnoticích omezení.
Závěr
V tomto tutoriálu jste se naučili, jak efektivně vytvořit plochý ZIP archiv pomocí C#. Ukázali jsme proces extrakce vnitřních ZIP archivů do rodičovského ZIP, čímž jsme efektivně předešli vnořeným složkám. Pro další informace se neváhejte podívat na dokumentaci Aspose.ZIP pro .NET, nebo nás kontaktujte prostřednictvím našeho fóra.