Arbeiten mit 7z-Archiven
Übersicht
7-Zip ist ein Dateiarchivierungsprogramm mit einer hohen Kompressionsrate. Aspose.ZIP API ermöglicht das Erstellen und Verwalten von 7-Zip Archiven in Ihren Anwendungen, ohne dass Sie andere Anwendungen von Drittanbietern benötigen. Aspose.ZIP API bietet die Klasse SevenZipArchive für die Arbeit mit 7-Zip Archiven. Diese Klasse bietet verschiedene Methoden, um Operationen mit Archiven durchzuführen. API bietet die Klasse SevenZipArchiveEntry, um eine einzelne Datei innerhalb des 7z-Archivs darzustellen.
Einen einzelnen 7-Zip-Eintrag erstellen
Das folgende Codebeispiel zeigt, wie man einen 7-Zip Eintrag mit Hilfe der SevenZipArchive Instanz erstellt.
1try (FileOutputStream sevenZipFile = new FileOutputStream("archive.7z")) {
2 try (SevenZipArchive archive = new SevenZipArchive()) {
3 archive.createEntry("data.bin", "file.dat");
4 archive.save(sevenZipFile);
5 }
6} catch (IOException ex) {
7}
Anlegen von 7-Zip-Archiveinträgen
Die Klasse SevenZipArchive bietet createEntries-Methoden zum rekursiven Hinzufügen von Dateien und Verzeichnissen in das angegebene Verzeichnis an. Das folgende Codebeispiel demonstriert, wie 7-Zip Archiveinträge erstellt werden.
1try (SevenZipArchive archive = new SevenZipArchive()) {
2 archive.createEntries("dataDir");
3 archive.save("SevenZip.7z");
4}
7-Zip Verschlüsselungseinstellungen
Aspose.ZIP API bietet die Klasse SevenZipAESEncryptionSettings, die Einstellungen für die AES-Verschlüsselung oder -Entschlüsselung für 7z-Archive bereitstellt. Das folgende Codebeispiel zeigt, wie man AES-Verschlüsselungseinstellungen bereitstellt.
1try (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$")))) {
2 archive.createEntry("data.bin", new ByteArrayInputStream(new byte[] {0x00, (byte)0xFF} ));
3 archive.save("archive.7z");
4}
AES-256 ist die einzig mögliche Verschlüsselungsmethode für das 7z-Archiv.
7-Zip-Archiv mit LZMA-Komprimierung
Das folgende Codebeispiel zeigt, wie man ein 7z-Archiv mit LZMA-Komprimierung und AES-Verschlüsselung erstellt.
1try (FileOutputStream sevenZipFile = new FileOutputStream("archive.7z")) {
2 try (SevenZipArchive archive = new SevenZipArchive()) {
3 archive.createEntry("Eintrag1.bin",
4 new ByteArrayInputStream(new byte[] {0x00, (byte)0xFF}),
5 new SevenZipEntrySettings(new SevenZipLZMACompressionSettings(),
6 new SevenZipAESEncryptionSettings("test1")),
7 new File("data1.bin"));
8 archive.save(sevenZipFile);
9 }
10} catch (IOException ex) {
11}
Auf ähnliche Weise können Sie 7z-Archive mit den Komprimierungsmethoden BZip2, PPMd und LZMA2 zusammenstellen oder Dateien ohne Komprimierung speichern.
Unterschiedliches Passwort für Einträge festlegen
Das folgende Codebeispiel zeigt, wie ein Archiv mit Einträgen erstellt wird, die mit unterschiedlichen Kennwörtern für jeden Eintrag verschlüsselt sind.
1try (FileOutputStream sevenZipFile = new FileOutputStream("archive.7z")) {
2 Datei fi1 = new Datei("data1.bin");
3 Datei fi2 = new Datei("daten2.bin");
4 Datei fi3 = new Datei("daten3.bin");
5
6 try (SevenZipArchive archive = new SevenZipArchive()) {
7 archive.createEntry("entry1.bin", fi1, false,
8 new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(),
9 new SevenZipAESEncryptionSettings("test1")));
10 archive.createEntry("entry2.bin", fi2, false,
11 new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(),
12 new SevenZipAESEncryptionSettings("test2")));
13 archive.createEntry("entry3.bin", fi3, false,
14 new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(),
15 new SevenZipAESEncryptionSettings("test3")));
16 archive.save(sevenZipFile);
17 }
18} catch (IOException ex) {
19}
Extraktion von 7z-Archiven
Aspose.ZIP kann jetzt LZMA, LZMA2, BZip2 und PPMd komprimierte Archive extrahieren.
Das folgende Codebeispiel zeigt, wie ein 7z-Archiv in ein Verzeichnis entpackt wird.
1try (SevenZipArchive archive = new SevenZipArchive("archive.7z")) {
2 archive.extractToDirectory("ExtractionFolder");
3}