IRONZIP VERWENDEN

Öffnen einer Zip-Datei in C#

Chaknith Bin
Chaknith Bin
4. Januar 2024
Teilen Sie:

ZIP ist ein Dateisystemformat für Archiveinträge, das eine verlustfreie Datenkompression unterstützt. Eine ZIP-Datei kann eine oder mehrere Dateien oder Verzeichnisse enthalten, die möglicherweise komprimiert wurden. Das ZIP-Dateiformat erlaubt mehrere Komprimierungsalgorithmen, wobei DEFLATE der gängigste ist. Das ZIP-Format wurde dann schnell von vielen Software-Dienstprogrammen unterstützt. Die führenden Betriebssystemanbieter unterstützen ZIP-Archive schon seit langem. Microsoft unterstützt ZIP-Dateien bereits seit Windows 98, und die anderen Hersteller folgten diesem Beispiel.

In diesem Blog werden wir eine moderne, einfache und effiziente Möglichkeit erkunden, ZIP-Archivdateien oder extrahierte Dateien mit IronZIP zu öffnen. Wir werden uns mit ZIP-Dateien im Allgemeinen und ihren Vorteilen befassen. Anschließend werden die im Systemnamensraum verfügbaren Optionen für die Arbeit mit dem ZIP-Dateiformat vorgestellt. Anschließend wird Schritt für Schritt erklärt, wie Sie die ZIP-Datei öffnen, die ZIP-Datei in einen temporären Ordner entpacken, eine neue ZIP-Datei erstellen und Dateien zu bestehenden ZIP-Dateien hinzufügen.

Vorteile der Verwendung von ZIP-Dateien in Softwareanwendungen

  1. Komprimierung: Diese Technik reduziert die Größe der archivierten Dateien/Ordner durch den Einsatz verschiedener Komprimierungsalgorithmen wie Implode, Deflate, Deflate64, bzip2, LZMA, WavPack, PPMd usw.

  2. Reduzierte Übertragungszeit: Kleinere Dateigrößen bedeuten schnellere Übertragungszeiten, insbesondere beim Versenden von Dateien über das Internet. Dies ist besonders vorteilhaft für E-Mail-Anhänge und das Hoch- oder Herunterladen von Dateien von Websites.

  3. Konsolidierung von Dateien: ZIP-Dateien ermöglichen es Ihnen, mehrere Dateien zu einem einzigen Archiv zu konsolidieren, wodurch die Anzahl der Dateien, die Sie verwalten müssen, reduziert wird. Dies ist nützlich, um Projekte zu organisieren oder Software zu verteilen, die aus mehreren Dateien besteht.

  4. Passwort-Schutz: Viele ZIP-Dienstprogramme bieten die Möglichkeit, das Archiv mit einem Passwort zu schützen und so eine zusätzliche Sicherheitsebene für Ihre Dateien hinzuzufügen. Dies ist nützlich, wenn Sie den Zugriff auf den Inhalt der ZIP-Datei einschränken möchten.

Erstellen von ZIP-Archiven und Extrahieren von ZIP-Dateien mit IronZIP

Einführung in die IronZIP-Bibliothek und Dokumentation finden Sie hier. In C#-Anwendungen können ZIP-Dateien auf verschiedene Weise erstellt und extrahiert werden. Das IronZIP NuGet-Paket verfügt über alle Funktionen zum Archivieren von Dateien in den Formaten ZIP, TAR, GZIP und BZIP2. Im Folgenden finden Sie Beispiele für die Verwendung von IronZIP in der modernen Anwendungsprogrammierung zur Erstellung von Anwendungen der nächsten Generation zum Öffnen von ZIP-Dateien, Extrahieren von ZIP-Dateien, Erstellen neuer ZIP-Dateien usw.

Schritt 1. .NET Core-Konsolenanwendung erstellen

Projekt erstellen

.NET-Konsolenanwendung kann mit Visual Studio erstellt werden. Öffnen Sie Visual Studio und wählen Sie Projekt erstellen. Hier sehen Sie verschiedene Vorlagen, um ein Projekt zu erstellen. Der einfachste Weg, den Code zu demonstrieren oder zu testen, ist die Erstellung einer Konsolenanwendung. Wir werden die Projektvorlage Console App auswählen.

Wie man eine Zip-Datei in C# öffnet: Abbildung 1 - Neues Projekt

Geben Sie den Projektnamen ein

Im folgenden Fenster können Sie den Projektnamen, den Speicherort des Projekts im Dateisystem und schließlich den Pfad zum Lösungsordner eingeben. Sie können den Projektmappen- und den Projektordner identisch halten oder sie in verschiedenen Ordnern unterbringen.

So öffnen Sie eine Zip-Datei in C#: Abbildung 2 - Projekt konfigurieren

.NET-Framework-Version auswählen

Der nächste Schritt ist die Auswahl der .NET-Framework-Version für das Projekt. Wenn Sie in einer bestimmten Version entwickeln möchten, geben Sie die gewünschte Version an, ansonsten wählen Sie immer die neueste stabile Version, um ein Projekt zu erstellen. Die neueste Version können Sie von der Microsoft-Website herunterladen. Klicken Sie dann auf Erstellen, um die Konsolenanwendung zu erstellen.

So öffnen Sie Zip-Dateien in C#: Abbildung 3 - Zielplattform

Dadurch wird das Standardprojekt aus der Vorlage erstellt und die Projekt- und Lösungsdateien in den angegebenen Verzeichnissen gespeichert. Sobald das Projekt erstellt ist, wird es ähnlich wie unten aussehen. Manchmal wird die Klasse in der program.cs in den neuesten Versionen nicht verwendet.

using System;
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
namespace MyApp // Note: actual namespace depends on the project name.
{
    internal class Program
    {
        static void Main(string [] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
using System;
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
namespace MyApp // Note: actual namespace depends on the project name.
{
    internal class Program
    {
        static void Main(string [] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
Imports System
' See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!")
Dim MyApp As namespace ' Note: actual namespace depends on the project name.
If True Then
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	internal class Program
'	{
'		static void Main(string [] args)
'		{
'			Console.WriteLine("Hello World!");
'		}
'	}
End If
$vbLabelText   $csharpLabel

Um eine neue ZIP-Datei zu erstellen und alle ZIP-Archivdateien zu extrahieren, können wir System.IO.Compression aus den Standardbibliotheken verwenden. In dem obigen Code können die statischen Methoden ZipFile.OpenRead und ZipFile.Open verwendet werden, um ZIP-Dateien zu öffnen oder ZIP-Dateien zu extrahieren.

using System.IO.Compression;  
Console.WriteLine("-----------Zip - Unzip-----------");
static void AddEntry(string filePath, 
System.IO.Compression.ZipArchive zipArchive)
{
    var file = Path.GetFileName(filePath); // get file name in var file
    zipArchive.CreateEntryFromFile(filePath, file);
}
var zip = "myFile.zip";
using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(zip,     ZipArchiveMode.Create))
{
    AddEntry(file1, archive);
    AddEntry(file2, archive);
}
var dirToExtract = "extract";
if (Directory.Exists(dirToExtract) == false)
{
    Directory.CreateDirectory(dirToExtract);
}
ZipFile.ExtractToDirectory(zip, dirToExtract); //extracted file
using System.IO.Compression;  
Console.WriteLine("-----------Zip - Unzip-----------");
static void AddEntry(string filePath, 
System.IO.Compression.ZipArchive zipArchive)
{
    var file = Path.GetFileName(filePath); // get file name in var file
    zipArchive.CreateEntryFromFile(filePath, file);
}
var zip = "myFile.zip";
using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(zip,     ZipArchiveMode.Create))
{
    AddEntry(file1, archive);
    AddEntry(file2, archive);
}
var dirToExtract = "extract";
if (Directory.Exists(dirToExtract) == false)
{
    Directory.CreateDirectory(dirToExtract);
}
ZipFile.ExtractToDirectory(zip, dirToExtract); //extracted file
Imports System.IO.Compression
Console.WriteLine("-----------Zip - Unzip-----------")
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'static void AddEntry(string filePath, System.IO.Compression.ZipArchive zipArchive)
'{
'	var file = Path.GetFileName(filePath); ' get file name in var file
'	zipArchive.CreateEntryFromFile(filePath, file);
'}
Dim zip = "myFile.zip"
Using archive As System.IO.Compression.ZipArchive = ZipFile.OpenRead(zip, ZipArchiveMode.Create)
	AddEntry(file1, archive)
	AddEntry(file2, archive)
End Using
Dim dirToExtract = "extract"
If Directory.Exists(dirToExtract) = False Then
	Directory.CreateDirectory(dirToExtract)
End If
ZipFile.ExtractToDirectory(zip, dirToExtract) 'extracted file
$vbLabelText   $csharpLabel

Im obigen Code haben wir eine ZIP-Datei mit dem Namen myFile.zip, und wir verwenden den System-Namensraum. Die OpenRead-Methode wird verwendet, um die ZIP-Datei im angegebenen Modus zu öffnen. Dies kann auch zum Erstellen neuer ZIP-Archivdateien verwendet werden. Sobald geöffnet, können wir einen neuen Archiv-Eintrag mit der Methode AddEntry hinzufügen und dann extrahiert ExtractToDirectory ZIP-Archivdateien oder ausgewählte Dateien in das angegebene Verzeichnis. Es wird geprüft, ob das Verzeichnis existiert. Falls es nicht existiert, wird ein Verzeichnis mit Directory.CreateDirectory erstellt. dirToExtract ist der Verzeichnispfad zum Extrahieren von ZIP-Archivdateien. Die letzte Zeile im Code ZipFile.ExtractToDirectory(zip, dirToExtract) extrahiert eine ZIP-Datei. Alle Dateien werden im Verzeichnispfad gespeichert.

Schritt 2. Installation von IronZIP mit dem NuGet-Paketmanager

Öffnen Sie den Projektmanager von Visual Studio und suchen Sie nach dem IronZIP-Paket. Wählen Sie dann die neueste Version aus und klicken Sie auf Installieren. Sie können die zu installierende Version in der Dropdown-Liste ändern. Klicken Sie dann auf Installieren.

Wie man eine Zip-Datei in C# öffnet: Abbildung 4 - NuGet-Paket-Manager

Erstellen einer ZIP-Archivdatei und Hinzufügen von Dateien mit IronZIP

Wie man eine Zip-Datei in C# öffnet: Abbildung 5 - IronZIP

IronZIP ist eine Archivkompressions- und Dekompressionsbibliothek, entwickelt von Iron Software. Neben dem weit verbreiteten ZIP-Format kann es auch TAR, GZIP und BZIP2 verarbeiten.

IronZIP ist eine C# ZIP-Archivbibliothek, die Genauigkeit, Benutzerfreundlichkeit und Geschwindigkeit priorisiert. Die benutzerfreundliche API ermöglicht es Entwicklern, modernen .NET-Projekten in wenigen Minuten Archivfunktionen hinzuzufügen.

IronZIP hat viele Vorteile im Vergleich zur System.Io.Compression-Bibliothek. Sie können das gewünschte Komprimierungsverhältnis während der Komprimierung angeben und auch verschiedene Komprimierungsalgorithmen ZIP, TAR, GZIP, BZIP2 verwenden. Es unterstützt auch Mobil-, Web- und Desktop-Plattformen und verschiedene .NET-Versionen.

Erstellen einer ZIP-Archivdatei und Hinzufügen von Dateien mit IronZIP

IronZIP hat die Klasse IronArchive, die verwendet werden kann, um ZIP-Dateien zu erstellen und ZIP-Dateien zu extrahieren. Sie unterstützt auch die Erstellung von TAR-, GZIP- und BZIP2-Archivdateien mit einer einzigen Bibliothek. Nachfolgend finden Sie den Code zum Erstellen einer ZIP-Datei. Die IronArchive-Klasse erstellt/öffnet ZIP-Dateien und erstellt dann ein Archiv. Die Add-Methode wird verwendet, um Dateieinträge wie unten gezeigt zum Archiv hinzuzufügen.

// setup
var archivePath= "ironZip.zip";
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}
// zip file
using (var archive = new IronZipArchive(9))
{
    // Add files to the zip 
    archive.Add(file1);
    archive.Add(file2);
    archive.SaveAs(archivePath);
}
// setup
var archivePath= "ironZip.zip";
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}
// zip file
using (var archive = new IronZipArchive(9))
{
    // Add files to the zip 
    archive.Add(file1);
    archive.Add(file2);
    archive.SaveAs(archivePath);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Der ursprüngliche Quellcode enthält die erforderlichen Einstellungen, um den Namen der ZIP-Archivdatei anzugeben und zu prüfen, ob das angegebene Verzeichnis existiert. Dann archivieren wir die Dateien, um eine ZIP-Datei mit der Add-Methode zu erstellen. Der zweite Parameter im Komprimierungsparameter ist 1 für niedriger und 9 für höher. txt-Dateien können ohne Verlust auf maximal 9 komprimiert werden und Bilddateien können eine geringere Komprimierung verwenden, um Datenverluste zu vermeiden.

Öffnen Sie die ZIP-Archivdatei mit IronZIP

Die IronArchive-Klasse kann auch verwendet werden, um die Dateien aus der ZIP-Archivdatei zu extrahieren. Alle Dateien werden mit IronArchive.ExtractArchiveToDirectory extrahiert, was dabei hilft, alle Dateien in bestimmte Verzeichnisse wie unten angegeben zu extrahieren.

var extractionPath = "IronZipFiles";
// extract files from zip
if (Directory.Exists(extractionPath) == false)
{
    Directory.CreateDirectory(extractionPath);
}
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath);
var extractionPath = "IronZipFiles";
// extract files from zip
if (Directory.Exists(extractionPath) == false)
{
    Directory.CreateDirectory(extractionPath);
}
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath);
Dim extractionPath = "IronZipFiles"
' extract files from zip
If Directory.Exists(extractionPath) = False Then
	Directory.CreateDirectory(extractionPath)
End If
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath)
$vbLabelText   $csharpLabel

Der obige Code extrahiert ZIP-Dateien in ein Verzeichnis. Der Code prüft, ob das Verzeichnis vorhanden ist, und extrahiert die ZIP-Archivdatei in das angegebene Verzeichnis.

Lizenzierung (kostenlose Testversion verfügbar)

Damit der obige Code funktioniert, ist ein Lizenzschlüssel erforderlich. Dieser Schlüssel muss in appsettings.json platziert werden

"IronZip.LicenseKey": "your lincese key"
"IronZip.LicenseKey": "your lincese key"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'"IronZip.LicenseKey": "your lincese key"
$vbLabelText   $csharpLabel

Eine Testlizenz ist für Entwickler verfügbar, wenn sie sich hier registrieren, und ja, eine Kreditkarte ist für eine Testlizenz nicht erforderlich. Man kann die E-Mail-ID angeben und sich für eine kostenlose Testversion registrieren.

Dateien zu einer bestehenden ZIP-Archivdatei hinzufügen

Verwenden Sie die statische FromFile-Methode von IronZIP, um ein bestehendes Archiv zu öffnen. Diese Methode erfordert auch die Angabe des Dateinamens des neuen Archivs, das als Ausgabe erstellt wird.

//add to existing archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";
using (var file = IronArchive.FromFile(archivePath, archivePlusPath))
{
    // Add files
    file.Add(file3);
}
//add to existing archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";
using (var file = IronArchive.FromFile(archivePath, archivePlusPath))
{
    // Add files
    file.Add(file3);
}
'add to existing archive
Const file3 As String = ".\image3.png"
Dim archivePlusPath = "ironZipPlus.zip"
Using file = IronArchive.FromFile(archivePath, archivePlusPath)
	' Add files
	file.Add(file3)
End Using
$vbLabelText   $csharpLabel

Der Code verwendet die statische, void-Methode IronArchive.FromFile, um die bestehende ZIP-Datei zu öffnen und dann die neue Datei als Archiv-Eintrag hinzuzufügen. Sobald die Datei entsorgt ist, wird sie erfolgreich gespeichert.

Aktualisierungen

Die IronZIP-Bibliothek wird ständig basierend auf dem Feedback von Kunden/Benutzern aktualisiert, und alle Updates sind hier zu finden.

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass die Programmierung von ZIP-Dateien in der modernen Anwendungsentwicklung, in der Speicher- und Datenübertragungskosten von den Cloud-Host-Anbietern erhoben werden, eine wesentliche Fähigkeit darstellt. Die Kenntnis dieser Fähigkeit kann Programmierern helfen, die Kosten der Anwendung zu senken und die Leistung der Anwendung zu verbessern.

Indem Sie die Installationsschritte befolgen und die bereitgestellten Codebeispiele erkunden, können Entwickler schnell die Leistungsfähigkeit von IronZIP nutzen, um neue Dateien zu erstellen und ZIP/Entpack-Aufgaben mühelos zu erledigen. Da immer mehr Anwendungen modernisiert und in die Cloud verlagert werden, bietet eine zuverlässige ZIP-Bibliothek wie IronZIP C#-Entwicklern die notwendigen Werkzeuge, um die Anforderungen der modernen Anwendungsentwicklung zu erfüllen. Nutzen Sie die Kraft von IronZIP und entdecken Sie neue Möglichkeiten für die Arbeit mit ZIP-Dateien in Ihren C#-Anwendungen.

IronZIP bietet umfassende Unterstützung für seine Entwickler. Um mehr darüber zu erfahren, wie IronZIP für C# funktioniert, besuchen Sie diese Seite. IronZIP bietet eine kostenlose Testlizenz, die eine großartige Gelegenheit ist, IronZIP und seine Funktionen kennenzulernen.

Iron Software verfügt über verschiedene andere Bibliotheken. Erkunden Sie diese, um mehr Wissen zu erlangen und Ihre Fähigkeiten zu aktualisieren, um moderne Anwendungen zu programmieren/entwickeln.

Chaknith Bin
Software-Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.
< PREVIOUS
Wie man Dateien in .NET Core entpackt
NÄCHSTES >
Erstellen einer Zip-Datei in C# .NET Core

Sind Sie bereit, loszulegen? Version: 2025.4 gerade veröffentlicht

Lizenzen anzeigen >