Överblick

Vi kan dela upp arkiverings- och komprimeringsverktyg i tre huvudklasser:
- Arkiv med flera filer vanligtvis med en komprimering – ZIP, 7Z, XAR;
- Lagra flera filer utan komprimering – TAR, CPIO;
- Komprimering -endast format utan poster – GZ, LZ, BZIP2, XZ, ZStandard, Z.
Arkiv från den andra klassen kombineras ofta med endast komprimeringsformat. De är populära inom Unix-liknande system med sina distinkta funktioner – en för arkivering, en annan för komprimering. Nedan finns förklaringar och exempel för varje arkivtyp.

Komprimerade arkiv som innehåller flera filer

Vi använder metoden CreateEntry för varje fil som ska komprimeras. I dessa exempel tillhandahåller vi inga komprimeringsinställningar så de skulle vara standard för valt format.

Hur man zippar flera filer

Standard är Deflate-algoritmen

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

Hur man skapar 7-ZIP-arkiv av flera filer

Standard för 7-zip är LZMA-algoritmen

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-arkiv med flera filer

Standard är ZLib-algoritmen

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

Lagra flera filer utan komprimering

Tillvägagångssätt för TAR- och CPIO-format är liknande och ligger i den redan kända metoden CreateEntry .

TAR-arkiv utan komprimering

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

CPIO-arkiv utan komprimering

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

Format endast för komprimering utan poster

Sådana arkiv som GZIP, LZ, BZIP2, XZ, Z stöder inte poster och kan bara komprimera en enda källa. Se prover med en sådan kompression.

GZ-arkiv Format endast komprimering utan poster

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

LZ-arkiv Format endast komprimering utan poster

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 gör det möjligt att kombinera format som endast är arkiverade och endast komprimerade med en enda metod. Här är ett exempel på denna funktionalitet med kombinationen TAR.GZ. För att uppnå detta använder vi metoden SaveGzipped.

TAR.GZ kombination

Det finns liknande metoder för LZIP, XZ, ZStandard, Z-komprimeringsformat.

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

Men vi måste använda en annan metod för BZIP2-format.

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: