Zum Fußzeileninhalt springen
NUTZUNG VON IRONZIP

Wie man Dateien im Ordner mit C# komprimiert

ZIP-Dateien sind Dateien, die ein oder mehrere komprimierte Dateien oder Ordner im ZIP-Format enthalten. Es ist eine gängige Methode, mehrere Dateien oder Ordner zu komprimieren und in einem einzigen Archiv zu speichern. Diese Methode kann die Datenmenge reduzieren, Speicherplatz sparen und den Dateitransfer über das Internet erleichtern. In this article, you will learn how to work with ZIP files in C# using the IronZIP library. Sie erfahren, wie Sie ZIP-Dateien programmgesteuert erstellen, lesen, extrahieren und aktualisieren können, sowie wie Sie verschiedene Funktionen von IronZIP nutzen, wie z. B. Verschlüsselung, Passwortschutz und Komprimierungsstufen. Am Ende dieses Artikels werden Sie in der Lage sein, IronZIP zu verwenden, um ZIP-Dateien in Ihren C#-Anwendungen mühelos zu bearbeiten.

Was wir in diesem Artikel behandeln werden

  1. IronZIP in unser Projekt integrieren
  2. Eine ZIP-Datei erstellen
  3. Eine passwortgeschützte ZIP-Datei erstellen
  4. Eine ZIP-Datei extrahieren
  5. Eine passwortgeschützte ZIP-Datei extrahieren
  6. Auf ein bestehendes ZIP-Archiv zugreifen

Was ist IronZip?

IronZIP ist eine leistungsstarke und vielseitige C# ZIP-Archivbibliothek, die es Ihnen ermöglicht, ZIP-Dateien programmgesteuert zu erstellen, zu lesen und zu extrahieren. It supports various archive formats, such as ZIP, TAR, GZIP, and BZIP2. Es unterstützt auch Passwortschutz, Verschlüsselung und Komprimierungsstufen. IronZIP ist kompatibel mit .NET 8, 7, 6, Core, Standard und Framework.

IronZIP kann Sie bei verschiedenen Anwendungsfällen und Vorteilen der Arbeit mit ZIP-Dateien unterstützen, wie z.B.:

  1. Ein Backupsystem erstellen: Sie können IronZIP verwenden, um Ihre wichtigen Dateien und Ordner zu komprimieren und zu verschlüsseln und in einem sicheren Ort zu speichern. Auf diese Weise können Sie Speicherplatz sparen und Ihre Daten vor unbefugtem Zugriff schützen.
  2. Email-Anhänge senden: Sie können IronZIP verwenden, um die Größe Ihrer Email-Anhänge zu reduzieren, indem Sie sie in einer ZIP-Datei komprimieren. Dies kann helfen, das Dateigrößenlimit nicht zu überschreiten und den Übertragungsprozess zu beschleunigen.
  3. Dateien aus dem Internet herunterladen: Sie können IronZIP verwenden, um ZIP-Dateien aus dem Internet herunterzuladen und zu extrahieren, wie z.B. Softwarepakete, Dokumente, Bilder und andere Dateitypen. Dies kann Ihnen helfen, Bandbreite und Zeit zu sparen und die benötigten Dateien einfach zuzugreifen.

Erste Schritte mit IronZIP

Bevor Sie den Code schreiben, müssen Sie das IronZIP NuGet-Paket in Ihrem C#-Projekt installieren. IronZIP ist eine beliebte Komprimierungsbibliothek, die über NuGet verfügbar ist.

Installation der IronZIP-Bibliothek

Um IronZIP zu installieren, können Sie die NuGet-Paket-Manager-Konsole in Visual Studio verwenden. Führen Sie einfach den folgenden Befehl aus:

Install-Package IronZip

Alternativ können Sie das Paket direkt von der offiziellen IronZIP-Website herunterladen. Nach der Installation können Sie direkt loslegen, indem Sie das folgende Namespace am Anfang Ihres C#-Codes hinzufügen.

using IronZip;
using IronZip;
Imports IronZip
$vbLabelText   $csharpLabel

Erstellen von C# ZIP-Dateien in einem Ordner

Sie können einfach ZIP-Dateien in einem Ordner mit IronZIP erstellen. Der folgende Code wird alle Dateien aus dem angegebenen Verzeichnis zippen.

using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
Imports System
Imports System.IO
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Get all files from the specified directory
		Dim fileArray() As String = Directory.GetFiles("D:\Docs\")

		' Create a new ZIP archive
		Using archive = New IronZipArchive()
			' Iterate through each file and add it to the archive
			For Each file In fileArray
				archive.Add(file) ' Add files to the ZIP
			Next file
			' Save the archive to a file
			archive.SaveAs("myZipFile.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Der obige C#-Code verwendet die IronZIP-Bibliothek, um alle Dateien in einer einzigen ZIP-Datei zu komprimieren. Der Code führt Folgendes aus:

  • Deklariert ein String-Array namens fileArray und weist ihm das Ergebnis der Directory.GetFiles-Methode zu, die den Pfad des Verzeichnisses ("D:\Docs") als Parameter übernimmt. Diese Methode gibt ein Array von Strings zurück, das die vollständigen Namen aller Dateien im angegebenen Verzeichnis enthält.
  • Erzeugt eine neue Instanz der IronZipArchive-Klasse, die ein ZIP-Archiv im Speicher darstellt. Die Instanz wird einer Variable namens archive zugewiesen und in eine using-Anweisung eingebettet, die sicherstellt, dass das ZIP-Archiv entsorgt wird, wenn der Codeblock endet.
  • Iteriert über das fileArray-Array mithilfe einer foreach-Schleife, und für jede Datei ruft es die Add-Methode des archive-Objekts auf, wobei der Dateiname als Parameter übergeben wird. Diese Methode fügt dem ZIP-Archiv einen neuen Eintrag mit demselben Namen und Inhalt wie die Datei hinzu.
  • Ruft die SaveAs-Methode des archive-Objekts auf und übergibt den Namen der ZIP-Datei („myZipFile.zip“) als Parameter. Diese Methode speichert das ZIP-Archiv auf einer Datei im aktuellen Dateisystem.

Auf diese Weise können Sie mit nur wenigen Codezeilen neue ZIP-Archive erstellen.

Ausgabe

Die Ausgabe ist wie folgt:

Wie man Dateien in einem Ordner mit C# zippt: Abbildung 1 - Ausgabedateien vom vorherigen Codebeispiel

Erstellen einer passwortgeschützten ZIP-Datei

IronZIP bietet eine einfache Methode zur Erstellung passwortgeschützter ZIP-Dateien. Das folgende Codebeispiel komprimiert Dateien und erstellt eine neue ZIP-Datei mit einem Passwort.

using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Set Password and Encryption Method
            archive.Encrypt("myPa55word", EncryptionMethods.AES256);
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Set Password and Encryption Method
            archive.Encrypt("myPa55word", EncryptionMethods.AES256);
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
Imports System
Imports System.IO
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Get all files from the specified directory
		Dim fileArray() As String = Directory.GetFiles("D:\Docs\")

		' Create a new ZIP archive
		Using archive = New IronZipArchive()
			' Iterate through each file and add it to the archive
			For Each file In fileArray
				archive.Add(file) ' Add files to the ZIP
			Next file
			' Set Password and Encryption Method
			archive.Encrypt("myPa55word", EncryptionMethods.AES256)
			' Save the archive to a file
			archive.SaveAs("myZipFile.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Die Zeile archive.Encrypt("myPa55word", EncryptionMethods.AES256); setzt ein Passwort ("myPa55word") für ein ZIP-Archiv mithilfe von IronZIP. Es erhöht die Sicherheit, indem es AES-256-Verschlüsselung auf das Archiv anwendet, um sicherzustellen, dass nur Benutzer mit dem richtigen Passwort auf den Inhalt zugreifen können. Diese Funktion ist wertvoll, um sensible Daten während der Speicherung oder Übertragung innerhalb von C#-Anwendungen zu schützen. Sie müssen den angegebenen Modus des Verschlüsselungsalgorithmus als zweiten Parameter übergeben.

Die Datei wird wie unten gezeigt verschlüsselt.

Ausgabe

Wie man Dateien in einem Ordner mit C# zippt: Abbildung 2 - Ausgegebene verschlüsselte Datei vom vorherigen Codebeispiel

Wir haben die Demonstration der Erstellung einer ZIP-Datei gesehen, indem durch die Verzeichnisse vom angegebenen Pfad geschleift wird. Nun gehen wir zum Beispiel des Entpackens von Dateien über.

Extrahieren von Dateien aus einem ZIP-Archiv

IronZIP bietet eine Methode zum Extrahieren von Dateien aus einem ZIP-Archiv in C#. Das folgende Codebeispiel wird die komprimierte Datei innerhalb eines ZIP-Archivs extrahieren.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract all files from the ZIP archive to the specified directory
		IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles")
	End Sub
End Class
$vbLabelText   $csharpLabel

Der Code IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles"); verwendet IronZIP, um alle Dateien aus "myZipFile.zip" zu extrahieren und in das Verzeichnis "myExtractedFiles" zu platzieren. Diese prägnante Methode vereinfacht den Prozess der Extrahierung von ZIP-Archiven in C#, indem sie eine praktische Lösung für Dateiextraktionsaufgaben bietet.

Ausgabe

Die Ausgabe ist wie folgt:

Wie man Dateien in einem Ordner mit C# zippt: Abbildung 3 - Ausgegebene Dateien vom vorherigen Codebeispiel

Wie man aus einer passwortgeschützten ZIP-Datei extrahiert

IronZIP bietet auch eine Methode, um passwortgeschützte ZIP-Dateien zu extrahieren. Der folgende Code wird die IronZIP-Methode verwenden, um alle vorhandenen Dateien und Verzeichnisse aus der angegebenen ZIP-Datei zu extrahieren.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the password-protected ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the password-protected ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract all files from the password-protected ZIP archive to the specified directory
		IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word")
	End Sub
End Class
$vbLabelText   $csharpLabel

Die ExtractArchiveToDirectory-Methode der IronZipArchive-Klasse extrahiert alle Einträge aus einem ZIP-Archiv in ein angegebenes Verzeichnis. Es übergibt drei Argumente an die Methode: den Pfad der ZIP-Datei („myZipFile.zip“), den Pfad des Zielverzeichnisses („myExtractedFiles“) und das Passwort der ZIP-Datei („myPa55word“).

Auf diese Weise können Sie passwortgeschützte ZIP-Dateien einfach extrahieren.

Wie man auf ein bestehendes Archiv zugreift

IronZIP bietet Methoden zum Zugriff auf das bestehende Archiv und zur Ansicht aller im Archiv enthaltenen Einträge.

using System;
using System.Collections.Generic;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive with a password
        using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
        {
            // Get entries list
            List<string> names = archive.GetArchiveEntryNames();
            // Iterate through each entry name and print it
            foreach (string name in names)
            {
                Console.WriteLine(name);
            }
        }
    }
}
using System;
using System.Collections.Generic;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive with a password
        using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
        {
            // Get entries list
            List<string> names = archive.GetArchiveEntryNames();
            // Iterate through each entry name and print it
            foreach (string name in names)
            {
                Console.WriteLine(name);
            }
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Open an existing ZIP archive with a password
		Using archive = New IronZipArchive("myZipFile.zip", "myPa55word")
			' Get entries list
			Dim names As List(Of String) = archive.GetArchiveEntryNames()
			' Iterate through each entry name and print it
			For Each name As String In names
				Console.WriteLine(name)
			Next name
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Der bereitgestellte C#-Code verwendet IronZIP, um eine sichere IronZipArchive-Instanz zu erstellen, indem eine ZIP-Datei namens "myZipFile.zip" mit dem Passwort "myPa55word" geladen wird. Geben Sie den Passwortparameter nicht an, wenn die Datei nicht verschlüsselt ist. Es ruft dann die Liste der Eintragsnamen (Datei- und Ordnernamen) im verschlüsselten ZIP-Archiv ab und druckt sie.

Die Methode GetArchiveEntryNames sammelt die Eintragsnamen, und eine foreach-Schleife gibt jeden Namen auf der Konsole aus. Dies demonstriert, wie IronZIP einen sicheren Zugriff und die Abfrage von Eintragsinformationen aus passwortgeschützten ZIP-Archiven auf eine prägnante Weise ermöglicht.

Ausgabe

Wie man Dateien in einem Ordner mit C# zippt: Abbildung 4 - Ausgabe vom vorherigen Codebeispiel

Abschluss

Zusammenfassend erweist sich IronZIP als eine robuste und vielseitige C#-Bibliothek zur Arbeit mit ZIP-Dateien. Its capabilities extend beyond basic compression and extraction, offering features such as password protection, encryption, and compatibility with various archive formats. Ob Sie Backup-Systeme erstellen, Email-Anhänge verwalten oder Dateien aus dem Web herunterladen, IronZIP vereinfacht diese Aufgaben mit Einfachheit und Effizienz.

Durch die Integration von IronZIP in Ihre C#-Anwendungen erhalten Sie ein leistungsstarkes Werkzeug für den Umgang mit ZIP-Dateien, verbessern die Datensicherheit und optimieren Dateitransferprozesse. Sie können von einer kostenlosen Testversion profitieren, wenn nötig.

Häufig gestellte Fragen

Wie kann ich eine ZIP-Datei aus einem Ordner in C# erstellen?

Sie können IronZIP verwenden, um eine ZIP-Datei aus einem Ordner zu erstellen, indem Sie durch die Dateien im Verzeichnis iterieren und diese zu einem neuen ZIP-Archiv hinzufügen. Verwenden Sie die IronZipArchive Klasse und rufen Sie die SaveAs Methode auf, um die ZIP-Datei zu speichern.

Wie installiere ich IronZIP in einem C#-Projekt?

Installieren Sie IronZIP in Ihrem C#-Projekt, indem Sie den NuGet-Paket-Manager in Visual Studio verwenden. Führen Sie den Befehl Install-Package IronZip in der Paket-Manager-Konsole aus oder laden Sie es von der offiziellen IronZIP-Website herunter.

Welche Formate unterstützt IronZIP für die ZIP-Dateiverwaltung?

IronZIP unterstützt verschiedene Archivformate, einschließlich ZIP, TAR, GZIP und BZIP2, und bietet Flexibilität für verschiedene Komprimierungs- und Archivierungsbedürfnisse.

Kann ich in C# erstellte ZIP-Dateien verschlüsseln?

Ja, Sie können ZIP-Dateien mit IronZIP verschlüsseln, indem Sie die Encrypt Methode mit AES-256-Verschlüsselung anwenden, um Ihre Daten innerhalb des Archivs zu sichern.

Wie kann ich Dateien aus einer ZIP-Datei in C# extrahieren?

Um Dateien aus einem ZIP-Archiv mit IronZIP zu extrahieren, verwenden Sie die ExtractArchiveToDirectory Methode und geben Sie die Quell-ZIP-Datei sowie das Zielverzeichnis an.

Ist es möglich, passwortgeschützte ZIP-Dateien in C# zu bearbeiten?

Ja, Sie können passwortgeschützte ZIP-Dateien mit IronZIP bearbeiten, indem Sie das Passwort angeben, wenn Sie Methoden wie ExtractArchiveToDirectory verwenden, um die Inhalte sicher zuzugreifen.

Welche Vorteile bietet die Verwendung von IronZIP für die Verwaltung von ZIP-Dateien?

IronZIP vereinfacht Aufgaben wie Datensicherung, E-Mail-Anhangsverwaltung und Web-Downloads, indem es Funktionen wie Verschlüsselung, Passwortschutz und Unterstützung für mehrere Archivformate bietet.

Unterstützt IronZIP .NET 8 und andere Versionen?

IronZIP ist kompatibel mit .NET 8, 7, 6, Core, Standard und Framework und somit flexibel für die Integration in verschiedene C#-Projekte.

Wie können Entwickler auf eine Testversion von IronZIP zugreifen?

Entwickler können auf eine kostenlose Testversion von IronZIP zugreifen, indem sie den Lizenz- oder Download-Bereich der IronZIP-Website besuchen, um seine Funktionen zu evaluieren.

Was ist der Vorteil der Verwendung von ZIP-Dateien für die Datenübertragung?

ZIP-Dateien sind für die Datenübertragung vorteilhaft, da sie die Dateigröße reduzieren, Speicherplatz sparen und es einfacher machen, mehrere Dateien effizient über das Internet zu versenden.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen