Im vorherigen Beitrag haben Sie verschiedene Methoden zum Komprimieren von Dateien und Ordnern in ZIP archiv mit Aspose.ZIP for .NET kennengelernt. In diesem Beitrag zeige ich Ihnen, wie Sie Dateien in ZIP Archiven mit C# extrahieren oder entpacken. Wir behandeln auch, wie Sie passwortgeschützte oder AES-verschlüsselte ZIP Archive programmgesteuert extrahieren. Dieser Artikel ist in die folgenden Abschnitte unterteilt:
- C# API zum Entpacken von Dateien
- Dateien in ZIP Archiven in C# entpacken
- Entpacken Sie passwortgeschützte ZIP Dateien
- AES-verschlüsselte ZIP Dateien in C# extrahieren
C# API zum Entpacken von Dateien
Bevor wir beginnen, vergewissern Sie sich, dass Sie Aspose.ZIP for .NET heruntergeladen und darauf verwiesen haben oder sein Paket mit NuGet Package Manager in Ihrem Projekt installiert haben.
ZIP Dateien mit C# entpacken
Das Entpacken von ZIP Dateien kann auf zwei Arten erfolgen:
- Entpacken Sie jede Datei einzeln in ZIP
- Dateien in einen bestimmten Ordner entpacken
Bei der ersten Methode können Sie explizit auf jede Datei im ZIP Archiv zugreifen und sie entpacken. Außerdem können Sie den Fortschritt des Extraktionsprozesses ausdrucken. Während die zweite Methode die Dateien einfach in den angegebenen Ordner entpackt.
Extrahieren Sie jede Datei im Archiv separat
Im Folgenden sind die Schritte zum Zugreifen auf und Extrahieren von Dateien und zum Drucken des Extraktionsfortschritts in C# aufgeführt:
- Öffnen Sie das ZIP Archiv in einem FileStream objekt.
- Erstellen und initialisieren Sie die Instanz von Archive mit dem FileStream objekt.
- Greifen Sie über die Sammlung Archive.Entries auf Dateien im ZIP zu.
- Legen Sie den Ereignishandler ArchiveEntry.ExtractionProgressed fest, um den Extraktionsfortschritt zu drucken.
- Extrahieren/entpacken Sie Dateien mit der methode ArchiveEntry.Extract(string).
Das folgende Codebeispiel zeigt, wie Dateien in einem ZIP Archiv mit C# extrahiert werden.
// ZIP Datei öffnen
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
{
// Greifen Sie auf jeden Eintrag im ZIP Archiv zu
for (int i = 0; i < archive.Entries.Count; i++)
{
int percentReady = 0;
// Protokollieren Sie den Extraktionsfortschritt in der Konsole.
archive.Entries[i].ExtractionProgressed += (s, e) =>
{
int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize);
if (percent > percentReady)
{
Console.WriteLine(string.Format("{0}% decompressed", percent));
percentReady = percent;
}
};
// Extrahieren Sie den Inhalt des Eintrags auf die Festplatte.
archive.Entries[i].Extract(archive.Entries[i].Name);
}
}
}
Dateien in einen Ordner extrahieren
Die folgenden Schritte werden verwendet, um Dateien in einen bestimmten Ordner in C# zu extrahieren.
- Öffnen Sie das ZIP Archiv mit der Klasse FileStream.
- Erstellen Sie eine Instanz der Klasse Archive und initialisieren Sie sie mit dem FileStream objekt von ZIP.
- Entpacken Sie Dateien mit der methode Archive.ExtractToDirectory(string).
Das folgende C# Codebeispiel entpackt Dateien in einen Ordner.
// ZIP Datei öffnen
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
using (var archive = new Archive(zipFile))
{
// Dateien in Ordner entpacken
archive.ExtractToDirectory("Unzipped Files");
}
}
Entpacken Sie passwortgeschützte ZIP Dateien in C#
Sie können auch ein passwortgeschütztes ZIP Archiv mit Aspose.ZIP for .NET entpacken. Dazu müssen Sie nur das Passwort mit der Klasse ArchiveLoadOptions angeben, die als zweiter Parameter an den Konstruktor des Archivs übergeben wird.
Im Folgenden finden Sie den Beispielcode zum Entpacken einer passwortgeschützten ZIP Datei.
// ZIP Datei öffnen
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
// Mit Passwort entschlüsseln
using (var archive = new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
// Extrahieren Sie Dateien in den Ordner
archive.ExtractToDirectory("Unzipped Files");
}
}
Extrahieren Sie AES-verschlüsselte ZIP Dateien in C#
Ein ZIP Archiv kann auch mit AES Verschlüsselung verschlüsselt werden. Aspose.ZIP for .NET unterstützt die Verschlüsselung von Archiven mit den Verschlüsselungsmethoden AES128, AES192 und AES256. Das Entpacken einer AES-verschlüsselten ZIP Datei ähnelt dem Entpacken passwortgeschützter ZIP Dateien. Geben Sie einfach das Entschlüsselungspasswort mit der Klasse ArchiveLoadOptions an und der Rest wird von der API erledigt.
Das folgende Codebeispiel zeigt, wie AES-verschlüsselte ZIP Dateien in C# entpackt werden.
// ZIP Datei öffnen
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
// Entschlüsseln und in Ordner extrahieren
new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}
Holen Sie sich eine kostenlose API Lizenz
Sie können Aspose.ZIP for .NET ohne Evaluierungseinschränkungen verwenden, indem Sie eine kostenlose temporäre Lizenz erwerben.
Fazit
In diesem Artikel haben Sie gelernt, wie Sie ZIP Dateien mit C# entpacken. Außerdem haben Sie gesehen, wie Sie Dateien in passwortgeschützten ZIP Archiven entpacken. Die Codebeispiele haben auch gezeigt, wie Dateien in einem verschlüsselten ZIP Archiv in C# extrahiert werden. Weitere Informationen zu Aspose.ZIP for .NET finden Sie unter Dokumentation.