Overzicht

We kunnen archiverings- en compressietools in drie hoofdklassen verdelen:
- Archieven met meerdere bestanden, meestal met compressie – ZIP, 7Z, XAR;
- Meerdere bestanden opslaan zonder compressie – TAR, CPIO;
- Compressie -only formaten zonder vermeldingen – GZ, LZ, BZIP2, XZ, ZStandard, Z.
Archieven uit de tweede klasse worden vaak gecombineerd met formaten die alleen compressie bevatten. Ze zijn populair binnen Unix-achtige systemen vanwege hun verschillende bewerkingen – één voor archivering, een andere voor compressie. Hieronder vindt u uitleg en voorbeelden voor elk archieftype.

Gecomprimeerde archieven die meerdere bestanden bevatten

We gebruiken de CreateEntry-methode voor elk bestand dat moet worden gecomprimeerd. In deze voorbeelden leveren we geen compressie-instellingen, dus deze zijn standaard voor het gekozen formaat.

Hoe meerdere bestanden te ZIPpen

Standaard is het Deflate-algoritme

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

Hoe u 7-ZIP-archieven van verschillende bestanden kunt maken

Standaard voor 7-zip is het LZMA-algoritme

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-archief met verschillende bestanden

Standaard is het ZLib-algoritme

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

Meerdere bestanden opslaan zonder compressie

De aanpak voor TAR- en CPIO-formaten is vergelijkbaar en ligt in de reeds bekende CreateEntry -methode.

TAR-archief zonder compressie

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-archief zonder compressie

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

Alleen compressieformaten zonder vermeldingen

Dergelijke archieven zoals GZIP, LZ, BZIP2, XZ, Z ondersteunen geen vermeldingen en kunnen slechts één bron comprimeren. Zie voorbeelden met een dergelijke compressie.

GZ-archief Formaten die alleen voor compressie geschikt zijn, zonder vermeldingen

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-archief Formaten die alleen voor compressie geschikt zijn, zonder vermeldingen

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 maakt het mogelijk om formaten die alleen archief en alleen compressie bevatten, met één enkele methode te combineren. Hier is een voorbeeld van deze functionaliteit met de TAR.GZ-combinatie. Om dit te bereiken gebruiken we de SaveGzipped-methode.

TAR.GZ-combinatie

Er zijn vergelijkbare methoden voor LZIP-, XZ-, ZStandard- en Z-compressieformaten.

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

We moeten echter een andere aanpak gebruiken voor het BZIP2-formaat.

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

Andere ondersteunde Aspose.ZIP voor .NET API-functies

Gebruik de Aspose.ZIP C#-bibliotheek om zip-bestandsdocumenten te converteren, samen te voegen, te bewerken, gegevens uit de archieven te extraheren en meer!

  

Support and Learning Resources

  
  

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