
Při práci se ZIP archivy se můžete setkat se situací, kdy ZIP soubor obsahuje další ZIP soubory, což vede k vnořené struktuře. Pokud je vaším cílem tuto strukturu zjednodušit tím, že extrahujete všechny vnitřní ZIP archivy 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ého Aspose.ZIP pro .NET.
Obsah
- Přehled .NET API pro vytváření plochých ZIP archivů
- Kroky k 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 vytvoření plochých ZIP archivů využijeme knihovnu Aspose.ZIP pro .NET. Toto 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 můžete snadno nainstalovat z NuGet nebo stáhnout její DLL z sekce ke stažení.
PM> Install-Package Aspose.Zip
Kroky k 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žkami 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 provádějte následující:
- Přidejte název každé položky do seznamu položek, které mají být přidány.
- Načtěte každou položku do
MemoryStream
pomocíArchiveEntry.Open().CopyTo(MemoryStream)
. - Přidejte položku do seznamu položek, které mají být přidány do rodičovského ZIP.
- Zkontrolujte, zda je položka ZIP archiv pomocí
- Odstraňte vnitřní ZIP položky: Procházejte seznam vnitřních ZIP archivů a odstraňte každou položku pomocí metody Archive.DeleteEntry(ArchiveEntry).
- Přidejte nové položky 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žte rodičovský ZIP archiv: 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 k používání Aspose.ZIP pro .NET bez jakýchkoli hodnotící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.
Viz také
- Přidání souborů nebo složek do ZIP archivů v C#
- Rozbalení souborů v ZIP archivech pomocí C#
- Sloučení více ZIP nebo TAR archivů v C#
- Vytvoření spustitelného samorozbalovacího archivu v C#
Dodržováním těchto kroků můžete snadno implementovat C# plochou zip souborovou kompresi ve svých aplikacích, což zajistí jediný souborový zip archiv, který je jak efektivní, tak snadno spravovatelný.