Dateien in C# entpacken

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

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:

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.

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.

In Verbindung stehende Artikel