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");
        } 
    }
  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: