7Zip-Archiv in C# erstellen

Im vorherigen Beitrag habe ich verschiedene Möglichkeiten zum Erstellen von ZIP archiv mit C# besprochen. Der Artikel behandelte auch, wie man verschlüsselte und passwortgeschützte ZIP Archive erstellt. Neben dem ZIP Format gibt es einige andere häufig verwendete Archivformate wie 7z, tar, RAR usw. Unter diesen basiert das 7z-Archivformat auf einer Open-Source-Architektur und es wird verwendet, um Dateien und Ordner mit einem hohen Komprimierungsverhältnis zu komprimieren. Es unterstützt auch die 256-Bit-AES Verschlüsselung und ermöglicht auch die Verschlüsselung der Dateinamen. In diesem Artikel zeige ich, wie Sie 7z (7-Zip)-Archive programmgesteuert mit C# erstellen.

Dieser Artikel ist in die folgenden Abschnitte unterteilt:

Alle Schritte und Codebeispiele in diesem Artikel basieren auf Aspose.ZIP for .NET. Stellen Sie daher sicher, dass Sie die API mit einer der folgenden Methoden installiert haben:

7z-Archiv (7-Zip) mit C# erstellen

Es könnte zwei mögliche Szenarien geben, Dateien in ein 7z-Archiv zu komprimieren. Entweder haben Sie nur eine einzige Datei oder es gibt eine Reihe von Dateien, die komprimiert werden müssen. Sie können beide Szenarien explizit behandeln.

Erstellen Sie ein 7z-Archiv mit einem einzigen Eintrag

Im Folgenden sind die Schritte zum Erstellen eines 7z-Archivs mit einem einzigen Eintrag aufgeführt.

Das folgende Codebeispiel zeigt, wie Sie mit C# ein 7z-Archiv (7-Zip) erstellen.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

Erstellen Sie ein 7z-Archiv mit mehreren Einträgen

In diesem Fall können Sie die Dateien in einem Ordner ablegen und den Pfad des Ordners an die Methode SevenZipArchive.CreateEntries() übergeben. Im Folgenden finden Sie Schritte zum Hinzufügen mehrerer Dateieinträge zu einem 7z-Archiv.

Das folgende Codebeispiel zeigt, wie Sie mit C# ein 7z-Archiv mit mehreren Einträgen erstellen.

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntries(dataDir);
    archive.Save("SevenZip.7z");
}

Erstellen Sie ein AES-verschlüsseltes 7z-Archiv mit C#

7z Format unterstützt AES Verschlüsselung zum Sichern der Dateien. Um eine 7z Datei zu verschlüsseln, wird die Klasse SevenZipAESEncryptionSettings verwendet. Das folgende Codebeispiel zeigt, wie Sie mit C# ein AES-verschlüsseltes 7z-Archiv erstellen.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.7z");
}

Legen Sie unterschiedliche Passwörter für 7z-Einträge mit C# fest

7z Format können Sie auch für jeden Dateieintrag ein anderes Passwort festlegen. Wenn Sie beispielsweise zwei Dateien in einem 7z-Archiv komprimieren, können Sie für jede Datei ein anderes Passwort festlegen. Im Folgenden sind die Schritte zum Festlegen unterschiedlicher Passwörter für 7z-Einträge aufgeführt.

Das folgende Codebeispiel zeigt, wie Sie für jeden Eintrag in einem 7z-Archiv ein Passwort festlegen.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

Fazit

In diesem Artikel haben wir gelernt, wie man 7z-Archive programmgesteuert mit C# erstellt. Außerdem haben wir gesehen, wie man AES-verschlüsselte 7z Dateien erstellt und für jeden Dateieintrag ein Passwort festlegt. Weitere Informationen zum Komprimieren/Dekomprimieren von Dateien finden Sie hier.

In Verbindung stehende Artikel