Übersicht

Wir können Archivierungs- und Komprimierungstools in drei Hauptklassen einteilen:
– Archive mit mehreren Dateien, normalerweise mit einer Komprimierung – ZIP, 7Z, XAR;
– Speichern mehrerer Dateien ohne Komprimierung – TAR, CPIO;
– Komprimierung Nur-Formate ohne Einträge – GZ, LZ, BZIP2, XZ, ZStandard, Z.
Archive aus der zweiten Klasse werden oft mit reinen Komprimierungsformaten kombiniert. Sie sind in Unix-ähnlichen Systemen mit ihren unterschiedlichen Vorgängen beliebt – einer für die Archivierung, einer für die Komprimierung. Nachfolgend finden Sie Erläuterungen und Beispiele für jede Archivart.

Komprimierte Archive, die mehrere Dateien enthalten

Wir verwenden die CreateEntry-Methode für jede zu komprimierende Datei. In diesen Beispielen stellen wir keine Komprimierungseinstellungen bereit, sodass diese als Standard für das ausgewählte Format gelten.

So komprimieren Sie mehrere Dateien

Der Standardwert ist der Deflate-Algorithmus

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

So erstellen Sie 7-ZIP-Archive aus mehreren Dateien

Der Standardwert für 7-zip ist der LZMA-Algorithmus

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 mit mehreren Dateien

Der Standardwert ist der ZLib-Algorithmus

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

Mehrere Dateien ohne Komprimierung speichern

Der Ansatz für TAR- und CPIO-Formate ist ähnlich und beruht auf der bereits bekannten Methode CreateEntry .

TAR-Archiv ohne Komprimierung

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-Archiv ohne Komprimierung

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

Nur-Komprimierungsformate ohne Einträge

Solche Archive wie GZIP, LZ, BZIP2, XZ, Z unterstützen keine Einträge und können nur einzelne Quellen komprimieren. Sehen Sie sich Beispiele mit einer solchen Komprimierung an.

GZ-Archiv Nur-Komprimierungsformate ohne Einträge

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-Archiv Nur-Komprimierungsformate ohne Einträge

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 ermöglicht die Kombination von reinen Archiv- und reinen Komprimierungsformaten mit einer einzigen Methode. Hier ist ein Beispiel für diese Funktionalität mit der TAR.GZ-Kombination. Um dies zu erreichen, verwenden wir die SaveGzipped-Methode.

TAR.GZ-Kombination

Es gibt ähnliche Methoden für die Komprimierungsformate LZIP, XZ, ZStandard und Z.

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

Für das BZIP2-Format müssen wir jedoch einen anderen Ansatz verwenden.

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

Weitere unterstützte Aspose.ZIP für .NET-API-Funktionen

Verwenden Sie die C#-Bibliothek Aspose.ZIP zum Konvertieren, Zusammenführen, Bearbeiten von Zip-Dateidokumenten, Extrahieren von Daten aus den Archiven und mehr!

  

Support and Learning Resources

  
  

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