Přehled
Archivační a komprimační nástroje můžeme rozdělit do tří hlavních tříd:- Archivy s několika soubory obvykle s kompresí – ZIP, 7Z, XAR;
- Ukládání několika souborů bez komprese – TAR, CPIO;
- Komprese -pouze formáty bez záznamů – GZ, LZ, BZIP2, XZ, ZStandard, Z.
Archivy z druhé třídy jsou často kombinovány s pouze komprimovanými formáty. Jsou oblíbené v systémech podobných Unixu se svými odlišnými operacemi – jednou pro archivaci, druhou pro kompresi. Níže jsou vysvětlení a ukázky pro každý druh archivu.
Komprimované archivy, které obsahují více souborů
Pro každý komprimovaný soubor používáme metodu CreateEntry. V těchto ukázkách nedodáváme nastavení komprese, takže by bylo výchozí pro zvolený formát.Jak zazipovat několik souborů
Výchozí hodnota je Deflate algoritmus
Zip compression with Deflate algoritm
using (Archive archive = new Archive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
// Add as many entries as you need
archive.Save("archive.zip");
}
Jak vytvořit 7-ZIP archivy několika souborů
Výchozí pro 7-zip je algoritmus LZMA
7-Zip with LZMA algorithm
using (SevenZipArchive archive = new SevenZipArchive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
// Add as many entries as you need
archive.Save("archive.7z");
}
XAR archiv s několika soubory
Výchozí je algoritmus ZLib
XAR with ZLib algorithm
using (XarArchive archive = new XarArchive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
// Add as many entries as you need
archive.Save("archive.xar");
}
Ukládání několika souborů bez komprese
Přístup pro formáty TAR a CPIO je podobný a spočívá v již známé metodě CreateEntry .Archiv TAR bez komprese
TAR storing files without compression
using (TarArchive archive = new TarArchive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
// Add as many entries as you need
archive.Save("archive.tar");
}
Archiv CPIO bez komprese
CPIO storing files without compression
using (TarArchive archive = new TarArchive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
// Add as many entries as you need
archive.Save("archive.cpio");
}
Formáty pouze pro kompresi bez položek
Takové archivy jako GZIP, LZ, BZIP2, XZ, Z nepodporují záznamy a mohou komprimovat pouze jeden zdroj. Podívejte se na ukázky s takovou kompresí.Archiv GZ Formáty pouze pro kompresi bez záznamů
GZIP with compress only single source
using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource(source);
archive.Save("archive.gz");
}
}
Archiv LZ Formáty pouze pro kompresi bez záznamů
LZIP with compress only single source
using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource(source);
archive.Save("archive.gz");
}
}
Aspose.ZIP umožňuje kombinovat pouze archivní formáty a formáty pouze pro kompresi jedinou metodou. Zde je příklad této funkce s kombinací TAR.GZ. Abychom toho dosáhli, používáme metodu SaveGzipped.
Kombinace TAR.GZ
Pro komprimační formáty LZIP, XZ, ZStandard, Z existují podobné metody.
TAR.GZ with SaveGzipped method
using (TarArchive archive = new TarArchive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
archive.SaveGzipped("archive.tar.gz");
}
TAR.BZ2
Pro formát BZIP2 však musíme použít jiný přístup.
BZIP2 with SaveGzipped method
using (TarArchive tar = new TarArchive())
{
tar.CreateEntry("first.bin", "data1.bin");
tar.CreateEntry("second.bin", "data2.bin");
using (Bzip2Archive archive = new Bzip2Archive())
{
archive.SetSource(tar);
archive.Save("archive.tar.bz2");
}
}
Další podporované funkce Aspose.ZIP for .NET API
Pomocí knihovny Aspose.ZIP C# můžete převádět, slučovat, upravovat soubory zip, extrahovat data z archivů a další!
Support and Learning Resources
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for .NET?
- Customers List
- Success Stories