
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 diesem Artikel lernen Sie, wie Sie mit ZIP-Dateien in C# mit der IronZIP-Bibliothek arbeiten. 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
- IronZIP in unser Projekt integrieren
- Eine ZIP-Datei erstellen
- Eine passwortgeschützte ZIP-Datei erstellen
- ZIP-Datei extrahieren
- Eine passwortgeschützte ZIP-Datei extrahieren
- 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. Es unterstützt verschiedene Archivformate wie ZIP, TAR, GZIP und BZIP2. Es unterstützt auch Passwortschutz, Verschlüsselung und Komprimierungsstufen. IronZIP ist kompatibel mit .NET 8, 7, 6, Core, Standard und Framework.
IronZIP kann Ihnen helfen, verschiedene Anwendungsfälle und Vorteile der Arbeit mit ZIP-Dateien zu handhaben, wie zum Beispiel:
- Ein Backup-System erstellen: Mit IronZIP können Sie Ihre wichtigen Dateien und Ordner in ein ZIP-Archiv komprimieren und verschlüsseln und diese an einem sicheren Ort speichern. Auf diese Weise können Sie Speicherplatz sparen und Ihre Daten vor unbefugtem Zugriff schützen.
- E-Mail-Anhänge versenden: Mit IronZIP können Sie die Größe Ihrer E-Mail-Anhänge reduzieren, indem Sie diese in eine ZIP-Datei komprimieren. Dadurch vermeiden Sie, die Dateigrößenbeschränkung zu überschreiten und beschleunigen die Übertragung.
- Herunterladen von Dateien aus dem Internet: Mit IronZIP können Sie ZIP-Dateien aus dem Internet herunterladen und extrahieren, 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:
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;Imports IronZipErstellen 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");
}
}
}Imports System
Imports System.IO
Imports IronZip
Module Program
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 As New IronZipArchive()
' Iterate through each file and add it to the archive
For Each file As String In fileArray
archive.Add(file) ' Add files to the ZIP
Next
' Save the archive to a file
archive.SaveAs("myZipFile.zip")
End Using
End Sub
End ModuleDer 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
fileArrayund weist ihm das Ergebnis der MethodeDirectory.GetFileszu, wobei der Pfad des Verzeichnisses ("D:\Docs") als Parameter übergeben wird. 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 Klasse
IronZipArchive, die ein ZIP-Archiv im Speicher repräsentiert. Die Instanz wird einer Variablen namensarchivezugewiesen und in eineusing-Anweisung eingeschlossen, die sicherstellt, dass das ZIP-Archiv entsorgt wird, wenn der Codeblock endet. - Iteriert über das
fileArrayArray mit einerforeachSchleife und ruft für jede Datei dieAddMethode desarchiveObjekts 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 Methode
SaveAsdes Objektsarchiveauf 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:

Erstellen einer passwortgeschützten ZIP-Datei
IronZIP ermöglicht einfaches Erstellen 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");
}
}
}Imports System
Imports System.IO
Imports IronZip
Module Program
Sub Main(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 As 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
' 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 ModuleDie Zeile archive.Encrypt("myPa55word", EncryptionMethods.AES256); legt mit IronZIP ein Passwort ("myPa55word") für ein ZIP-Archiv fest. Sie erhöht die Sicherheit durch die Anwendung von AES-256-Verschlüsselung auf das Archiv und gewährleistet so, dass nur Benutzer mit dem korrekten Passwort auf dessen 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

Wir haben die Demonstration des Erstellens einer ZIP-Datei gesehen, indem wir durch die Verzeichnisse des angegebenen Pfades geschleift sind. 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");
}
}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 ClassDer Code IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles"); verwendet IronZIP , um alle Dateien aus "myZipFile.zip" zu extrahieren und sie im Verzeichnis "myExtractedFiles" abzulegen. 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 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");
}
}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 ClassDie Methode ExtractArchiveToDirectory der Klasse IronZipArchive 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, um auf das vorhandene Archiv zuzugreifen und alle im Datei vorhandenen Einträge anzuzeigen.
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 ClassDer bereitgestellte C#-Code verwendet IronZIP , um eine sichere IronZipArchive-Instanz zu erstellen, indem eine ZIP-Datei mit dem Namen "myZipFile.zip" und 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 Schleife foreach 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

Abschluss
Zusammenfassend erweist sich IronZIP als eine robuste und vielseitige C#-Bibliothek zur Arbeit mit ZIP-Dateien. Seine Fähigkeiten gehen über grundlegende Komprimierung und Extraktion hinaus und bieten Funktionen wie Passwortschutz, Verschlüsselung und Kompatibilität mit verschiedenen Archivformaten. 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 bei Bedarf von einer kostenlosen Testversion profitieren.

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 Handbücher.
Verwandte Artikel


