Übersicht

Archive, die aus Einträgen bestehen, verfügen über die Methode createEntries zum Komprimieren des gesamten Ordners. Solche Methoden respektieren die Verzeichnisstruktur und erstellen regelmäßig für alle Unterordner. Sie können auch einen einzelnen Dateieintrag zu einem beliebigen Unterordner an einer beliebigen Stelle des Archivs hinzufügen.

So erstellen Sie ein ZIP-Archiv

Mit der Methode createEntry wird jede Datei zum komprimierten Archiv hinzugefügt. In diesen Beispielen geben wir keine Komprimierungseinstellungen an, daher werden die Standardeinstellungen für das ausgewählte Format angewendet.

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

Dieser Code erstellt ein ZIP -Archiv mit dem Namen "archive.zip", das zwei Dateien enthält: "data1.bin" und "data2.bin". Hier ist eine Aufschlüsselung der Funktionsweise:

  • Automatische Ressourcenverwaltung: Der Code verwendet einen try-with-resources-Block, um eine ordnungsgemäße Verwaltung der Ressourcen sicherzustellen. Dieser Block schließt das Archivobjekt nach Abschluss automatisch.
  • Hinzufügen von Dateien zum Archiv: Innerhalb des Blocks verwendet der Code die Methode createEntry zweimal, um Dateien zum Archiv hinzuzufügen:
    – Der erste Eintrag heißt "first.bin" und enthält den Inhalt der Datei "data1.bin".
    – Der zweite Eintrag heißt "second.bin" und enthält den Inhalt der Datei "data2.bin".
  • Speichern des Archivs: Abschließend wird die Speichermethode aufgerufen das Archivobjekt, um das neu erstellte ZIP-Archiv mit den angegebenen Einträgen in "archive.zip" zu speichern.

So fügen Sie Dateien zum 7zip-Archiv hinzu

Um mehrere Anhänge zu einem einzelnen 7zip-Archiv hinzuzufügen, verwenden wir die SevenZipArchive-Klasse zusammen mit den Methoden createEntry und save auf ähnliche Weise.

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

Der folgende Code führt die gleichen Aktionen wie der vorherige aus, jedoch für das Format 7-ZIP .

TAR-Archiv erstellen

Das Erweitern von Archiven erfordert oft das Extrahieren, das Hinzufügen neuer Dateien und das erneute Komprimieren, was ein ressourcenintensiver Prozess ist. Aspose.ZIP bietet eine intelligentere Lösung in Java. Öffnen Sie einfach das Archiv zum Extrahieren und fügen Sie neue Einträge direkt hinzu, um unnötiges Umpacken zu vermeiden. Dieser effiziente Ansatz funktioniert für das TAR-Archivformat.

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

Diese Anwendung teilt die Funktionalität der vorherigen, ist jedoch auf Archive mit der Erweiterung TAR zugeschnitten.

So erstellen Sie eine GZ-Datei

Nur-Komprimierungsformate ohne Einträge. Diese Komprimierungsformate, einschließlich GZIP, LZ, BZIP2, XZ und Z, unterstützen keine Dateieinträge. Sie können jeweils nur eine Quelldatei komprimieren.

    try (FileInputStream source = new FileInputStream("alice29.txt")) {
        try (GzipArchive archive = new GzipArchive()) {
            archive.setSource(source);
            archive.save("archive.gz");
        }
    } catch (IOException ex) {
        System.err.println(ex.getMessage());
    }

Erstellen Sie TAR GZ

Aspose.ZIP bietet eine praktische Möglichkeit, reine Archivierungs- und reine Komprimierungsformate mit einer einzigen Methode zu kombinieren. Hier ist ein Beispiel für diese Funktionalität mit der TAR.GZ-Kombination. Diese Methode verwendet die Methode saveGzipped .

    try (TarArchive archive = new TarArchive()) {
        archive.createEntry("first.bin", "data1.bin");
        archive.createEntry("second.bin", "data2.bin");
        archive.saveGzipped("archive.tar.gz");
    }

Erstellen Sie TARLZ

Zuerst erstellen wir ein FileInputStream-Objekt, das mit der zu archivierenden Datei verbunden ist. Als nächstes erstellen wir das LzipArchive-Objekt, legen die Quelle auf das zuvor erstellte FileInputStream-Objekt fest und speichern das Archiv.

    try (FileInputStream source = new FileInputStream("alice29.txt")) {
        try (LzipArchive archive = new LzipArchive()) {
            archive.setSource(source);
            archive.save("archive.lz");
        }
    } catch (IOException ex) {
        System.err.println(ex.getMessage());
    }

Erstellen Sie eine TAR-BZ2-Datei

Aspose.ZIP bietet ähnliche Methoden zum Komprimieren von Archiven mit den Formaten LZIP, XZ, ZStandard und Z. Für BZIP2 ist jedoch ein anderer Ansatz erforderlich.

    try (TarArchive tar = new TarArchive()) {
        tar.createEntry("first.bin", "data1.bin");
        tar.createEntry("second.bin", "data2.bin");
        try (Bzip2Archive archive = new Bzip2Archive()) {
            archive.setSource(tar);
            archive.save("archive.tar.bz2");
        }
    }

Diese Codekonstruktion kombiniert die Verwendung zweier unterschiedlicher Archivformate, nämlich TAR und Bzip2. Das Hauptmerkmal besteht darin, dass zunächst ein TAR-Archiv mithilfe der TarArchive-Klasse erstellt wird, indem mithilfe der Methode "createEntry" mehrere Dateien hinzugefügt werden. Anschließend wird dieses Archiv mithilfe der Bzip2Archive-Klasse in das Bzip2-Format komprimiert. .

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

Mit der Aspose.ZIP-Bibliothek in Java können Sie verschiedene Aufgaben im Zusammenhang mit ZIP-Dateidokumenten nahtlos erledigen. Unabhängig davon, ob Sie Formate konvertieren, Dateien zusammenführen, Inhalte bearbeiten oder Daten extrahieren müssen, bietet Aspose.ZIP umfassende Funktionen, um Ihren Arbeitsablauf zu optimieren und die Produktivität zu steigern.

  

Support and Learning Resources

  
  

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