Create ZIP in C#

Einführung in ZIP-Archive

ZIP-Archive sind unerlässlich, um eine oder mehrere Dateien oder Ordner in einem einzigen Container zu komprimieren und zusammenzufassen. Dieses Format reduziert nicht nur die Dateigröße für die Speicherung und Übertragung, sondern behält auch Metadateninformationen bei, was die Verwaltung von Dateien erleichtert. ZIP-Archive werden sowohl in Desktop- als auch in Webanwendungen für Aufgaben wie Hochladen, Herunterladen, Teilen und Sichern von Dateien durch Verschlüsselung häufig verwendet.

In diesem Artikel werden wir verschiedene Methoden zum programmgesteuerten Erstellen von ZIP-Archiven in C# untersuchen. Sie werden lernen, wie man:

C# ZIP-Bibliothek

Aspose.ZIP für .NET ist eine robuste API, die zum Zippen und Entzippen von Dateien und Ordnern innerhalb von .NET-Anwendungen entwickelt wurde. Sie bietet Funktionen wie AES-Verschlüsselung, um Ihre Dateien innerhalb von ZIP-Archiven zu sichern. Sie können die API einfach von NuGet installieren oder die Binärdateien im Abschnitt Downloads herunterladen.

Erstellen eines ZIP-Archivs in C#

Um eine Datei in ein ZIP-Archiv zu komprimieren, befolgen Sie diese Schritte:

  1. Erstellen Sie ein FileStream-Objekt für das Ausgabe-ZIP-Archiv.
  2. Öffnen Sie die Quelldatei mit einem FileStream-Objekt.
  3. Instanziieren Sie die Archive-Klasse.
  4. Fügen Sie die Datei mit der Archive.CreateEntry(string, FileStream)-Methode zum Archiv hinzu.
  5. Speichern Sie das ZIP-Archiv mit der Archive.Save(FileStream)-Methode.

Hier ist ein Codebeispiel, das zeigt, wie man eine Datei zu einem ZIP-Archiv in C# hinzufügt:

Mehrere Dateien zu einem ZIP-Archiv in C# hinzufügen

Um mehrere Dateien zu einem ZIP-Archiv hinzuzufügen, können Sie eine der folgenden Methoden wählen:

Verwendung von FileStream

Verwenden Sie die FileStream-Klasse, um mehrere Dateien mit der Archive.CreateEntry(String, FileStream)-Methode zum ZIP-Archiv hinzuzufügen. So geht’s:

Verwendung von FileInfo

Alternativ können Sie die FileInfo-Klasse verwenden, um Dateien hinzuzufügen. Diese Methode lädt die Dateien mit der FileInfo-Klasse und fügt sie mit der Archive.CreateEntry(String, FileInfo)-Methode zum ZIP-Archiv hinzu. Siehe das folgende Beispiel:

Verwendung des Dateipfads

Sie können auch Dateien direkt hinzufügen, indem Sie deren Pfade an die Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings)-Methode übergeben. So geht’s:

Ordner zu einem ZIP-Archiv in C# hinzufügen

Das Hinzufügen eines Ordners zu einem ZIP-Archiv kann eine bequeme Möglichkeit sein, mehrere Dateien einzuschließen. Um einen Ordner in C# zu zippen, befolgen Sie diese Schritte:

  1. Erstellen Sie ein FileStream-Objekt für das Ausgabe-ZIP-Archiv.
  2. Instanziieren Sie die Archive-Klasse.
  3. Verwenden Sie die DirectoryInfo-Klasse, um den Ordner anzugeben, der gezippt werden soll.
  4. Fügen Sie den Ordner mit der Archive.CreateEntries(DirectoryInfo)-Methode zum ZIP hinzu.
  5. Speichern Sie das ZIP-Archiv mit der Archive.Save(FileStream)-Methode.

Hier ist ein Codebeispiel, das zeigt, wie man einen Ordner zu einem ZIP-Archiv in C# hinzufügt:

Erstellen eines passwortgeschützten ZIP mit ZipCrypto in C#

Um die Sicherheit zu erhöhen, können Sie passwortgeschützte ZIP-Archive mit ZipCrypto-Verschlüsselung erstellen. Dies wird erreicht, indem Sie die ArchiveEntrySettings-Klasse im Konstruktor der Archive verwenden, die es Ihnen ermöglicht, den Verschlüsselungstyp anzugeben.

Hier ist ein Beispiel, wie man ein passwortgeschütztes ZIP-Archiv mit ZipCrypto in C# erstellt:

Passwortgeschütztes ZIP mit AES-Verschlüsselung erstellen

Die Aspose.ZIP für .NET-Bibliothek unterstützt auch AES-Verschlüsselung zum Sichern von ZIP-Archiven. Sie können aus den folgenden AES-Verschlüsselungsmethoden wählen:

  • AES128
  • AES192
  • AES256

Um AES-Verschlüsselung anzuwenden, verwenden Sie die AesEcryptionSettings-Klasse. So erstellen Sie ein passwortgeschütztes ZIP mit AES-Verschlüsselung in C#:

Parallelkomprimierungsmodus festlegen

Für Fälle mit mehreren Einträgen können Sie die API für die Parallelkomprimierung mit der ParallelOptions-Klasse konfigurieren. Aspose.ZIP für .NET bietet mehrere Parallelkomprimierungsmodi:

  • Nie - Nicht parallel komprimieren.
  • Immer - Immer parallel komprimieren (Achten Sie auf Out-of-Memory-Probleme).
  • Auto - Automatisch entscheiden, ob die Parallelkomprimierung basierend auf den Einträgen verwendet werden soll.

Hier ist ein Beispiel, das zeigt, wie man den Parallelkomprimierungsmodus beim Zippen mehrerer Dateien festlegt:

Weitere Informationen zur C# .NET ZIP-Bibliothek

Vertiefen Sie sich in unsere C# ZIP-API mit den folgenden Ressourcen:

ZIP-Archive online ausprobieren

Erforschen Sie unsere kostenlose Online-Anwendung, die auf Aspose.ZIP für .NET basiert, um Dateien einfach in ZIP-Archive zu komprimieren.

Fazit

In diesem Artikel haben Sie gelernt, wie man programmgesteuert ZIP-Archive in C# erstellt. Die bereitgestellten Codebeispiele zeigen, wie man Dateien und Ordner zu ZIP-Archiven hinzufügt. Darüber hinaus haben wir behandelt, wie man passwortgeschützte ZIP-Archive mit ZipCrypto- und AES-Verschlüsselungsmethoden erstellt. Wir haben auch die Parallelkomprimierung für die effiziente Handhabung großer Dateien besprochen. Wenn Sie Fragen haben oder weitere Unterstützung benötigen, können Sie sich gerne über unser Forum an uns wenden.

Siehe auch

Unrar oder Dateien mit C# extrahierenDateien in ZIP-Archiven mit C# entpacken7z (7-Zip) Archive in C# .NET erstellen
7z (7zip) Datei in C# .NET öffnen oder extrahierenGZip-Archive mit C# erstellen und extrahierenRAR-Dateien in ZIP-Archive in C# konvertieren
ZIP-Archive in TAR in C# konvertierenEin flaches ZIP-Archiv in C# erstellenAusführbares selbstextrahierendes Archiv in C# erstellen
TAR.GZ- und TAR.XZ-Dateien in C# erstellenDateien in einem ZIP-Archiv in C# löschenVerschachtelte ZIP-Archive in C# extrahieren
Mehrere ZIP- oder TAR-Archive in C# zusammenführenWie man ZIP-Dateien erstellt7z online extrahieren