Jak vytvořit ZIP soubor v aplikaci .NET

S knihovnou Aspose.ZIP for .NET můžete v C# vytvořit ZIP archiv bez spouštění 7-Zipu, WinRARu nebo jiného externího nástroje. Vytvořte instanci Archive, přidejte zdrojové soubory pod zvolenými názvy a metodou Save uložte hotový archiv do souboru nebo streamu.

Tato stránka se věnuje vytvoření ZIP archivu a sestavení jeho obsahu. Komprese je součástí této operace, jejím hlavním výsledkem je však uspořádaný archiv s jedním souborem, více soubory nebo celou adresářovou strukturou.

Příklad v C#: archiv s více soubory

Následující příklad vytvoří package.zip a přidá do něj PDF a CSV. U každé položky nastaví název, pod kterým bude soubor v archivu uložen.

Vytvoření package.zip se dvěma soubory

using Aspose.Zip;

using (var archive = new Archive())
{
    archive.CreateEntry("report.pdf", "report.pdf");
    archive.CreateEntry("data.csv", "data.csv");
    archive.Save("package.zip");
}

Instalace Aspose.ZIP for .NET

Nainstalujte balíček Aspose.ZIP z NuGetu a přidejte jej do projektu .NET. Archiv se vytváří přímo v procesu aplikace; samostatný program pro práci se ZIP není potřeba.

Konzole správce balíčků

PM> Install-Package Aspose.Zip

Zabalení jednoho souboru

Vytvořte Archive, zavolejte CreateEntry s názvem položky a cestou ke zdrojovému souboru a archiv uložte. Tento postup se hodí pro předání reportu, exportu nebo vygenerovaného dokumentu.

Přidání více souborů

Před uložením zavolejte CreateEntry pro každý soubor. Název položky v archivu nezávisí na zdrojové cestě, takže můžete sjednotit uspořádání souborů z různých adresářů.

Archivace celé složky

Přidejte soubory zdrojového adresáře a zachovejte bezpečné relativní cesty. Výsledná struktura bude přenositelná a archiv nebude obsahovat absolutní cesty z konkrétního počítače.

Uložení do streamu

Zapisovatelný stream využijete při vracení ZIP z ASP.NET, odesílání do cloudového úložiště nebo zpracování v paměti bez dočasného výstupního souboru.

Postup vytvoření archivu

  1. Nainstalujte Aspose.ZIP for .NET a přidejte knihovnu do projektu.
  2. Vytvořte instanci Archive pro nový ZIP.
  3. Přidejte jednotlivé soubory pomocí CreateEntry nebo obsah adresáře.
  4. Podle potřeby nastavte kompresi či šifrování.
  5. Uložte archiv do souboru nebo zapisovatelného streamu.
  6. Uvolněte archiv i streamy otevřené aplikací pomocí Dispose.

Struktura archivu se dokončí při uložení. Nejdříve přidejte všechny plánované položky, aby centrální adresář správně popisoval obsah ZIP.

Názvy souborů a struktura složek uvnitř ZIP

**Zdrojová cesta** určuje, odkud aplikace soubor čte. **Název položky** určuje jeho jméno a umístění uvnitř archivu. Díky oddělení těchto hodnot můžete soubory přejmenovat, seskupit do složek a přitom neprozradit názvy místních adresářů.

Pro vnořené položky používejte lomítka, například documents/2026/report.pdf. U názvů převzatých od uživatelů nebo externích systémů odmítejte absolutní cesty, odkazy na nadřazený adresář jako ../, prázdné názvy a nechtěné duplicity.

Ochrana archivu heslem

Aspose.ZIP podporuje tradiční ZipCrypto a AES s klíči o délce 128, 192 nebo 256 bitů. Pokud jej podporuje software příjemce, dejte přednost AES. ZipCrypto použijte pouze tehdy, když je rozhodující kompatibilita se staršími nástroji.

Hesla načítejte ze zabezpečené konfigurace, neukládejte je do zdrojového kódu ani logů a předávejte je jiným kanálem než samotný archiv. API neposkytuje možnost obnovit ztracené heslo.

Volba komprese

Deflate je praktická výchozí volba pro širokou kompatibilitu. Podle dat a softwaru příjemce lze použít také BZip2, LZMA, PPMd nebo režim Store bez komprese. Store se hodí pro již komprimovaná data, pokud je rychlost zabalení důležitější než drobná úspora místa.

JPEG, MP4 a řada dokumentů Office jsou již komprimované, a jejich velikost se proto nemusí výrazně snížit. ZIP je přesto užitečný pro předání v jednom souboru, uspořádání složek a ochranu obsahu.

Vytvoření archivu, komprese, rozbalení a prohlížení

CílVhodný postupVýsledek
Vytvořit nový ZIP a přidat soubory či složkyVytvoření ZIP - tato stránkaNový archiv s vybranými položkami
Zmenšit soubor nebo vytvořit jiný typ archivuKomprese souborů v C#Komprimovaná data nebo jiný formát archivu
Obnovit soubory z existujícího archivuRozbalení archivuPůvodní soubory uložené na disk nebo do streamu
Zkontrolovat položky bez rozbaleníProhlížení obsahuSeznam názvů a dostupných metadat
Přidat nebo změnit ochranu archivuOchrana heslemŠifrovaný archiv vyžadující správné heslo

Přidání PDF, DOCX, PNG nebo jiného souboru do ZIP není převod formátu. Původní soubor se pouze stane položkou nového archivu.

Doporučení pro produkční provoz

- Zajistěte včasné uvolnění archivů a streamů, zejména ve službách vytvářejících velké množství balíčků. - Při vracení ZIP z endpointu ASP.NET nebo odesílání do cloudu zapisujte do streamu. - U nedůvěryhodných požadavků předem ověřte zdrojové cesty, názvy položek, počet souborů a celkovou velikost vstupu. - Pokud by neúplný výstup způsobil problém, zapisujte do dočasného umístění a cílový soubor nahraďte až po úspěšném uložení. - Existující archiv přepisujte pouze tehdy, pokud to aplikace výslovně povoluje. - Vyžaduje-li sestavení nebo podepisování reprodukovatelný výstup, sjednoťte pořadí položek, jejich názvy a časová razítka.

Archivace běžných typů souborů

Vyberte návod podle souborů, které vaše aplikace běžně zpracovává. Příklady se věnují vytvoření a uspořádání archivu; zdrojový formát zůstává uvnitř ZIP beze změny.

Vytvoření ZIP online

Potřebujete archiv bez psaní kódu? Použijte zdarma online nástroj pro vytvoření ZIP .

  Bez instalace archivačního programu.
  Bez kódu a nastavení API.
  Nahrajte jeden nebo více souborů.
  Stáhněte vytvořený archiv.

Zdroje pro Aspose.ZIP for .NET

Časté dotazy

1. Jak vytvořit ZIP soubor v C#?

Vytvořte Archive, přidejte zdrojový soubor pomocí CreateEntry a zavolejte Save s cestou k výstupnímu souboru nebo se streamem. První příklad na této stránce ukazuje celý postup.

2. Lze do jednoho archivu přidat více souborů?

Ano. Pro každý soubor zavolejte CreateEntry a archiv uložte až po přidání všech položek.

3. Lze zabalit celou složku?

Ano. Přidejte soubory ze složky a použijte bezpečné relativní názvy položek, které zachovají požadovanou adresářovou strukturu.

4. Lze v .NET vytvořit ZIP se šifrováním AES?

Ano. V nastavení položek zvolte AES-128, AES-192 nebo AES-256 a heslo načtěte ze zabezpečené konfigurace aplikace.

5. Je potřeba 7-Zip nebo WinRAR?

Ne. Aspose.ZIP vytvoří archiv přímo v aplikaci .NET bez spouštění externího archivačního programu.