Ü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 komprimieren Sie einen Ordner

Wenn Sie aus einem gesamten Ordner ein ZIP-Archiv unter Beibehaltung der Struktur erstellen möchten, können Sie die Aspose.Zip-API für Java und den folgenden Code verwenden. Das try-with-resources-Konstrukt schließt die Archivressource automatisch, nachdem der gesamte Code ausgeführt wurde, unabhängig davon, ob alle Dateien ordnungsgemäß geschlossen wurden. Der im File corpus-Objekt angegebene Pfad gibt den Ordner an, der komprimiert werden soll. Mit createEntries wird jedes Element des Archivs separat hinzugefügt und so die ursprüngliche Struktur erhalten, die in einer Datei namens archive.zip gespeichert ist. Es ist wichtig zu beachten, dass der Code nicht prüft, ob der Ordner „D:/Data“ vorhanden ist oder ob darin Dateien vorhanden sind. Wenn das Verzeichnis nicht existiert oder leer ist, erstellt der Code kein Archiv.
Die Methode CreateEntries verfügt über den optionalen zweiten Parameter includeRootDirectory, der Gibt an, ob das Stammverzeichnis in das Archiv aufgenommen werden muss. Der Standardwert ist „true“, daher befinden sich im obigen Beispiel alle Archiveinträge im Ordner „Data“. Wenn nur Verzeichnisinhalte hinzugefügt werden sollen, übergeben Sie dort false.
Beispiel – Archiv aus Ordner erstellen:

    try (Archive archive = new Archive()) {
        File corpus = new File("D:\\Data");
        archive.createEntries(corpus);
        archive.save("archive.zip");
    }

Das folgende Codebeispiel erstellt ein ZIP-Archiv mit zwei Dateien: „image.bmp“ und „lyrics.txt“. Die Variablen fi1 und fi2 repräsentieren diese Dateien. Die createEntry-Methode des Archivobjekts wird verwendet, um jede Datei mit den angegebenen Pfaden zum Archiv hinzuzufügen: „data/pictures“ für „image.bmp“ und „data/text“ für „lyrics.txt“. Zusammenfassend erstellt dieser Code ein ZIP-Archiv mit dem Namen „archive.zip“, das zwei Ordner enthält, „data/pictures“ und „data/text“, die jeweils eine der jeweiligen Dateien enthalten.

    try (Archive archive = new Archive()) {
        File fi1 = new File("image.bmp");
        File fi2 = new File("lyrics.txt");
        archive.createEntry("data\\pictures\\photo.bmp", fi1);
        archive.createEntry("data\\text\\song.txt", fi2);
        archive.save("archive.zip");
    }

So komprimieren Sie einen Ordner in 7-ZIP unter Berücksichtigung seiner Struktur

Der folgende Code zeigt, wie man ein 7Z-Archiv erstellt und ihm alle Dateien und Ordner aus dem angegebenen Verzeichnis hinzufügt. Es funktioniert ähnlich wie ein Archiv mit dem ZIP-Dateiformat. CreateEntries ist die analoge Methode der 7Z-Archivierung. Es verfügt außerdem über den Parameter includeRootDirectory. Wichtig: wird in Aspose.ZIP für Java 24.4 implementiert

    try (SevenZipArchive archive = new SevenZipArchive()) {
        File corpus = new File("D:\\Data");
        archive.createEntries(corpus);
        archive.save("archive.7z");
    }

So komprimieren Sie einen Ordner in TAR und behalten dabei seine Struktur bei

Der Code erstellt ein TAR-Archiv für das angegebene Verzeichnis. Um dies zu erreichen, nutzt es die TarArchive-Klasse der Java Archive API. Die Methode createEntries fügt alle Dateien und Ordner aus dem Verzeichnis dem Archiv hinzu. Beibehaltung der Verzeichnisstruktur. Abschließend schreibt die Speichermethode den Inhalt des Archivs in die Datei „archive.tar“.
Beispiel:

    try (TarArchive archive = new TarArchive()) {
        archive.createEntries("D:\\Data");
        archive.save("archive.tar");
    }

Der bereitgestellte Code erstellt ein TAR-Archiv mit dem Namen „archive.tar“, das zwei Einträge enthält. Verzeichnisarchiv – Es fügt alle Dateien und Ordner aus dem Verzeichnis „D:/Data“ zum Archiv hinzu und behält dabei die Verzeichnisstruktur bei. Dadurch wird effektiv der gesamte Inhalt des angegebenen Verzeichnisses archiviert. Und Einzeldateieintrag – Es fügt eine bestimmte Datei mit dem Namen „data.bin“ aus dem „inneren“ Unterordner zum Archiv hinzu. Dies ermöglicht das Einbinden einer bestimmten Datei, ohne die gesamte Verzeichnisstruktur zu archivieren. Zusammenfassend lässt sich sagen, dass dieser Code ein TAR-Archiv erstellt, das sowohl die Archivierung auf Verzeichnisebene als auch die Einbindung einzelner Dateien kombiniert.
Beispiel 2 – Archivierungsverzeichnis und einzelne Datei kombinieren.

    try (TarArchive archive = new TarArchive()) {
        archive.createEntries("D:\\Data");
        archive.createEntry("inner\\data.bin", "data.bin");
        archive.save("archive.tar");
    }

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: