Create ZIP in C#

C# Archive: Lernen Sie, die Archive-Klasse für umfassende ZIP-Handlung zu nutzen.

ZIP Archive sind unerlässlich für das Komprimieren und Organisieren von Dateien und Ordnern in einem einzigen, handhabbaren Container. Sie reduzieren nicht nur die Dateigrößen für effiziente Speicherung und Übertragung, sondern bewahren auch Metadaten und können zur erhöhten Sicherheit verschlüsselt werden. In diesem Artikel werden wir verschiedene Methoden untersuchen, um Programmgesteuert ZIP-Dateien in C# erstellen, einschließlich wie man Dateien und Ordner hinzufügt, passwortgeschützte Archive erstellt und AES‑Verschlüsselung anwendet.

Was du lernen wirst

In diesem Artikel erfahren Sie, wie Sie:

C# ZIP Bibliothek

Der Aspose.ZIP for .NET Bibliothek ist ein leistungsstarkes Werkzeug für die Handhabung von ZIP-Dateioperationen innerhalb von .NET-Anwendungen, das das Zippen oder Entzippen von Dateien und Ordnern erleichtert. Diese Bibliothek ist besonders effektiv für Umgang mit großen Dateien in C# .NET ZIP Archive und unterstützt AES-Verschlüsselung für verbesserte Sicherheit. Sie können diese Bibliothek einfach von NuGet oder laden Sie die Binaries von Downloads Abschnitt.

Erstellen eines ZIP-Archivs in C#

Zu Programmgesteuert eine ZIP-Datei in C# erstellen, befolgen Sie diese Schritte:

  1. Erstelle ein FileStream Objekt für das Ausgabearchiv ZIP.
  2. Öffnen Sie die Quelldatei als FileStream Objekt.
  3. Instanziiere das Archiv Klasse.
  4. Fügen Sie die Datei dem Archiv hinzu, indem Sie die Archive.CreateEntry(string, FileStream) Methode.
  5. Speichern Sie das ZIP-Archiv mit dem Archive.Save(FileStream) Methode.

Hier ist eine Code-Vorlage, die zeigt, wie Sie eine Datei mit C# zu einem ZIP-Archiv hinzufügen:

using Aspose.Zip;
using Aspose.Zip.Saving;
// Create FileStream for output ZIP archive
using (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create))
{
	using (Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128))))
	{
		// Add folder to archive
		DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");
		archive.CreateEntries(corpus);
		// Create ZIP archive
		archive.Save(zipFile);
	}
}

Mehrere Dateien in einem ZIP-Archiv in C#

Wenn Sie es tun müssen Mehrere Dateien zu einem ZIP-Archiv hinzufügen, mehrere Ansätze können verfolgt werden. Hier sind die Methoden, die Sie mit verwenden können. C# zum Zippen mehrerer Dateien:

Verwenden von FileStream zum Hinzufügen von mehreren Dateien

Diese Methode verwendet die FileStream Klasse zum Hinzufügen von Dateien zum ZIP-Archiv über die Archive.CreateEntry(String, FileStream) Methode. So können Sie es tun:

using Aspose.Zip;
using Aspose.Zip.Saving;
// Create FileStream for output ZIP archive
using (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create))
{
	using (Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128))))
	{
		// Add folder to archive
		DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");
		archive.CreateEntries(corpus);
		// Create ZIP archive
		archive.Save(zipFile);
	}
}

Verwenden von FileInfo für mehrere Dateien

Alternativ können Sie das nutzen. FileInfo Klasse zum Laden von Dateien und zum Hinzufügen zum ZIP-Archiv mit dem Archive.CreateEntry(String, FileInfo) Methode. Nachfolgend ein Codebeispiel:

Verwenden Sie den File Path

Sie können die Dateipfade auch direkt angeben. Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings) Methode. Hier ist ein Beispiel:

Folders zu einem ZIP-Archiv in C#

Zu Einen Ordner zu einem ZIP-Archiv in C# hinzufügen, folgen Sie diesen Schritten:

  1. Erstelle ein FileStream Objekt für das Ausgabe-ZIP-Archiv.
  2. Instanziiere das Archiv Klasse.
  3. Verwenden Sie das DirectoryInfo Klasse, um den Ordner anzugeben, den Sie zippen möchten.
  4. Fügen Sie den Ordner zum ZIP hinzu, indem Sie die Archive.CreateEntries(DirectoryInfo) Methode.
  5. Speichern Sie das ZIP-Archiv mit dem Archive.Save(FileStream) Methode.

Hier ist ein Code-Beispiel, der zeigt, wie man einen Ordner zu einer ZIP-Datei hinzufügt:

Erstellen Sie ein Passwortgeschütztes ZIP mit ZipCrypto in C#

Um Ihre ZIP-Archive zu sichern, können Sie einen Passwortschutz mit ZipCrypto‑Verschlüsselung anwenden. Dies wird erreicht, indem man die ArchiveEntrySettings Klasse im Konstruktor von Archiv, die den Verschlüsselungstyp als Parameter akzeptiert. Sie können die C# Zip-Archiv-Passwort Methode, um dies einfach umzusetzen.

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

Erstellen Sie Passwortgeschütztes ZIP mit AES-Verschlüsselung

Der Aspose.ZIP for .NET Die Bibliothek unterstützt ebenfalls AES‑Verschlüsselung zum Schutz 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. Nachfolgend ein Codebeispiel, das zeigt, wie man ein passwortgeschütztes ZIP mit AES‑Verschlüsselung in C# erstellt, einschließlich Unterstützung für das. C# Zip-Datei-Passwort Funktion:

Parallel-Kompression-Modus

Für eine effiziente Verarbeitung mehrerer Einträge können Sie die API für parallele Kompression konfigurieren, indem Sie die ParallelOptions Klasse. Die verfügbaren parallelen Komprimierungsmodi sind:

  • Nie - Nicht parallel komprimieren.
  • Immer - Parallel komprimieren (Achtung bei möglichen Speicherproblemen).
  • Auto - Automatisch entscheiden, ob basierend auf den Einträgen Parallelkompression verwendet werden soll.

Hier ist, wie Sie den Parallelkomprimierungsmodus einstellen, während Sie mehrere Dateien mit der Aspose C# ZIP-Bibliothek zippen:

using Aspose.Zip;
using Aspose.Zip.Saving;
// For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
string dataDir = "";
using (FileStream zipFile = File.Open(dataDir + "UsingParallelismToCompressFiles_out.zip", FileMode.Create))
{
    using (FileStream source1 = File.Open(dataDir + "alice29.txt", FileMode.Open, FileAccess.Read))
    {
        using (FileStream source2 = File.Open(dataDir + "asyoulik.txt", FileMode.Open, FileAccess.Read))
        {
            using (var archive = new Archive())
            {
                archive.CreateEntry("alice29.txt", source1);
                archive.CreateEntry("asyoulik.txt", source2);
                //Define the parallelism criterion
                var parallelOptions = new Aspose.Zip.Saving.ParallelOptions
                {
                    ParallelCompressInMemory = ParallelCompressionMode.Always
                };
                archive.Save(zipFile,
                    new ArchiveSaveOptions()
                    {
                        ParallelOptions = parallelOptions,
                        Encoding = Encoding.ASCII,
                        ArchiveComment = "There are two poems from Canterbury corpus"
                    });
            }
        }
    }
}

Erfahren Sie mehr über die C# .NET ZIP-Bibliothek

Um Ihr Verständnis zu vertiefen C# .NET ZIP Bibliothek, erkunden Sie die folgenden Ressourcen:

Testen Sie unser Online ZIP-Komprimierungs-Tool

Sie können auch mit unserem experimentieren kostenlose Online-Anwendung basierend auf dem Aspose.ZIP für .NET, um Dateien mühelos in ZIP-Archive zu komprimieren.

Fazit

In diesem Artikel haben Sie gelernt, wie man Erstelle ZIP-Archive programmgesteuert in C#. Die bereitgestellten Codebeispiele zeigen, wie man Dateien und Ordner zu ZIP-Archiven hinzufügt, passwortgeschützte ZIP-Dateien mit ZipCrypto- und AES-Verschlüsselungsmethoden erstellt und die parallele Kompression konfiguriert. Zusätzlich verstehen Sie jetzt, wie man Erstelle ZIP-Dateien in C#, einschließlich wie man Datei zippen, Erstelle eine ZIP-Datei in C#, und Dateien zu ZIP hinzufügen Archive. Wenn Sie Fragen haben oder weitere Unterstützung benötigen, können Sie sich gerne über unser Forum.

Siehe auch

Unrar oder Dateien extrahieren mit C#Entzippen von Dateien in ZIP-Archiven mit C#Erstelle 7z (7-Zip)-Archive in C# .NET
7z (7zip)-Datei in C# öffnen oder extrahieren .NETGZip-Archive mit C# erstellen und extrahierenKonvertiere RAR-Dateien in ZIP-Archiv in C#
Konvertiere ZIP-Archive nach TAR in C#Erstelle ein flaches ZIP-Archiv in C#Erstelle ein ausführbares selbstextrahierendes Archiv in C#
Erstelle TAR.GZ und TAR.XZ Dateien in C#Dateien 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 entpacken

Zusätzliche Ressourcen

Wenn Sie nach weiteren Informationen darüber suchen, wie man Erstelle ZIP-Dateien in C#, schauen Sie sich das an:

Verschiedene Methoden einbeziehen, um Erstelle ZIP-Dateien in C#, zum Beispiel .NET Kern Erstellen ZIP Datei, C# ZIP-Datei programmgesteuert erstellen, und C# Dateien zu ZIP hinzufügen, kann die Entwicklungseffizienz und die Datenverarbeitungsfähigkeiten erheblich verbessern.

Sie können auch das erkunden. C# Zip-Datei-Beispiel um eine praktische Umsetzung dieser Methoden zu sehen, die Ihr Verständnis dafür weiter vertiefen wird, wie man zip-Dateien in .NET mit C#.

More in this category