Zum Fußzeileninhalt springen
NUTZUNG VON IRONZIP

Wie man eine ZIP-Datei in C# öffnet

ZIP ist ein Archivdateisystemformat, das verlustfreie Datenkompression unterstützt. Eine ZIP-Datei kann eine oder mehrere Dateien oder Verzeichnisse enthalten, die komprimiert worden sein könnten. Das ZIP-Dateiformat erlaubt mehrere Komprimierungsalgorithmen, wobei DEFLATE der gebräuchlichste ist. Das ZIP-Format wurde dann schnell von vielen Software-Utilities unterstützt. Führende Betriebssystemanbieter unterstützen das ZIP-Archiv schon lange. Microsoft unterstützt ZIP-Dateien seit Windows 98, und der Rest folgte 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 allgemein über ZIP-Dateien und ihre Vorteile lernen. Dann werden wir die im System-Namespace verfügbaren Optionen zum Arbeiten mit dem ZIP-Dateiformat erkunden. Anschließend werden wir Schritt-für-Schritt-Anleitungen überprüfen, um die ZIP-Datei zu öffnen, die ZIP-Datei in einen temporären Ordner zu extrahieren, eine neue ZIP-Datei zu erstellen und Dateien zu bestehenden ZIP-Dateien hinzuzufügen.

Vorteile der Verwendung von ZIP-Dateien in Softwareanwendungen

  1. Kompression: Diese Technik reduziert die Größe der archivierten Dateien/Ordner unter Verwendung verschiedener Komprimierungsalgorithmen wie Implode, Deflate, Deflate64, bzip2, LZMA, WavPack, PPMd usw.
  2. Reduzierte Übertragungszeit: Kleinere Dateigrößen bedeuten schnellere Übertragungszeiten, insbesondere beim Senden von Dateien über das Internet. Dies ist besonders vorteilhaft für E-Mail-Anhänge sowie das Hochladen oder Herunterladen von Dateien von Websites.
  3. Konsolidierung von Dateien: ZIP-Dateien ermöglichen es Ihnen, mehrere Dateien in einem einzigen Archiv zu konsolidieren, was die Anzahl der zu verwaltenden Dateien reduziert. Dies ist nützlich zum Organisieren von Projekten oder zum Verteilen von Software, die aus mehreren Dateien besteht.
  4. Passwortschutz: Viele ZIP-Utilities bieten die Option, das Archiv mit einem Passwort zu schützen, was eine zusätzliche Sicherheitsschicht für Ihre Dateien bietet. Dies ist nützlich, wenn Sie den Zugriff auf die Inhalte der ZIP-Datei einschränken möchten.

ZIP-Archive erstellen und ZIP-Dateien mit IronZIP extrahieren

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 hat alle Funktionen, um Dateien in verschiedenen Formaten zu archivieren: ZIP, TAR, GZIP und BZIP2. Im Folgenden finden Sie die Beispielschritte, wie Sie IronZIP in moderner Anwendungsprogrammierung verwenden können, um Apps der nächsten Generation zu erstellen, um ZIP-Dateien zu öffnen, ZIP-Dateien zu extrahieren, neue ZIP-Dateien zu erstellen usw.

Schritt 1. .NET Core Konsolenanwendung erstellen

Projekt erstellen

.NET-Konsolen-App kann mit Visual Studio erstellt werden. Öffnen Sie Visual Studio und wählen Sie Projekt erstellen. Hier sehen Sie verschiedene Vorlagen zur Erstellung eines Projekts. Der einfachste Weg, den Code zu demonstrieren oder zu testen, besteht darin, eine Konsolenanwendung zu erstellen. Wir werden die Projektvorlage Konsolen-App auswählen.

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

Projektnamen eingeben

Im untenstehenden Fenster können Sie den Projektnamen, den Speicherort des Projekts im Dateisystem und letztendlich den Pfad zum Lösungsordner eingeben. Sie können die Lösungs- und Projektordner gleich halten oder sie in verschiedenen Ordnern ablegen.

Wie man eine Zip-Datei in C# öffnet: Abbildung 2 - Projekt konfigurieren

.NET Framework-Version auswählen

Der nächste Schritt besteht darin, die .NET Framework-Version für das Projekt auszuwählen. Wenn Sie in einer bestimmten Version entwickeln möchten, geben Sie die gewünschte Version an. Andernfalls wählen Sie immer die neueste stabile Version, um ein Projekt zu erstellen. Die neueste Version kann von der Microsoft-Website heruntergeladen werden. Dann klicken Sie auf Erstellen, um die Konsolenanwendung zu generieren.

Wie man eine Zip-Datei in C# öffnet: Abbildung 3 - Ziel-Framework

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

// Import necessary namespaces
using System;

// Define the namespace
namespace MyApp // Note: actual namespace depends on the project name.
{
    // Define the Program class
    internal class Program
    {
        // Main method: Entry point of the application
        static void Main(string[] args)
        {
            // Print a welcome message
            Console.WriteLine("Hello, World!");
        }
    }
}
// Import necessary namespaces
using System;

// Define the namespace
namespace MyApp // Note: actual namespace depends on the project name.
{
    // Define the Program class
    internal class Program
    {
        // Main method: Entry point of the application
        static void Main(string[] args)
        {
            // Print a welcome message
            Console.WriteLine("Hello, World!");
        }
    }
}
' Import necessary namespaces
Imports System

' Define the namespace
Namespace MyApp ' Note: actual namespace depends on the project name.
	' Define the Program class
	Friend Class Program
		' Main method: Entry point of the application
		Shared Sub Main(ByVal args() As String)
			' Print a welcome message
			Console.WriteLine("Hello, World!")
		End Sub
	End Class
End Namespace
$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. Der folgende Code zeigt, wie ZipFile.OpenRead und ZipFile.Open statische Methoden verwendet werden, um ZIP-Dateien zu öffnen oder ZIP-Dateien zu extrahieren.

// Import necessary namespaces
using System;
using System.IO;
using System.IO.Compression;

public class ZipExample
{
    public static void Main()
    {
        Console.WriteLine("-----------Zip - Unzip-----------");

        // Method to add a file entry to the ZIP archive
        static void AddEntry(string filePath, ZipArchive zipArchive)
        {
            // Get file name from the file path
            var file = Path.GetFileName(filePath);

            // Create a new entry in the ZIP archive for the file
            zipArchive.CreateEntryFromFile(filePath, file);
        }

        // Name of the ZIP file to be created
        var zip = "myFile.zip";

        // Open or create the ZIP file for updating
        using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Update))
        {
            // Add files to the archive
            AddEntry("file1.txt", archive);
            AddEntry("file2.txt", archive);
        }

        // Directory where we want to extract the ZIP files
        var dirToExtract = "extract";

        // Create the directory if it does not exist
        if (!Directory.Exists(dirToExtract))
        {
            Directory.CreateDirectory(dirToExtract);
        }

        // Extract the contents of the ZIP file to the specified directory
        ZipFile.ExtractToDirectory(zip, dirToExtract);

        // Indicate that extraction is complete
        Console.WriteLine("Files extracted to: " + dirToExtract);
    }
}
// Import necessary namespaces
using System;
using System.IO;
using System.IO.Compression;

public class ZipExample
{
    public static void Main()
    {
        Console.WriteLine("-----------Zip - Unzip-----------");

        // Method to add a file entry to the ZIP archive
        static void AddEntry(string filePath, ZipArchive zipArchive)
        {
            // Get file name from the file path
            var file = Path.GetFileName(filePath);

            // Create a new entry in the ZIP archive for the file
            zipArchive.CreateEntryFromFile(filePath, file);
        }

        // Name of the ZIP file to be created
        var zip = "myFile.zip";

        // Open or create the ZIP file for updating
        using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Update))
        {
            // Add files to the archive
            AddEntry("file1.txt", archive);
            AddEntry("file2.txt", archive);
        }

        // Directory where we want to extract the ZIP files
        var dirToExtract = "extract";

        // Create the directory if it does not exist
        if (!Directory.Exists(dirToExtract))
        {
            Directory.CreateDirectory(dirToExtract);
        }

        // Extract the contents of the ZIP file to the specified directory
        ZipFile.ExtractToDirectory(zip, dirToExtract);

        // Indicate that extraction is complete
        Console.WriteLine("Files extracted to: " + dirToExtract);
    }
}
' Import necessary namespaces
Imports System
Imports System.IO
Imports System.IO.Compression

Public Class ZipExample
	Public Shared Sub Main()
		Console.WriteLine("-----------Zip - Unzip-----------")

		' Method to add a file entry to the ZIP archive
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'		static void AddEntry(string filePath, ZipArchive zipArchive)
'		{
'			' Get file name from the file path
'			var file = Path.GetFileName(filePath);
'
'			' Create a new entry in the ZIP archive for the file
'			zipArchive.CreateEntryFromFile(filePath, file);
'		}

		' Name of the ZIP file to be created
		Dim zip = "myFile.zip"

		' Open or create the ZIP file for updating
		Using archive As ZipArchive = ZipFile.Open(zip, ZipArchiveMode.Update)
			' Add files to the archive
			AddEntry("file1.txt", archive)
			AddEntry("file2.txt", archive)
		End Using

		' Directory where we want to extract the ZIP files
		Dim dirToExtract = "extract"

		' Create the directory if it does not exist
		If Not Directory.Exists(dirToExtract) Then
			Directory.CreateDirectory(dirToExtract)
		End If

		' Extract the contents of the ZIP file to the specified directory
		ZipFile.ExtractToDirectory(zip, dirToExtract)

		' Indicate that extraction is complete
		Console.WriteLine("Files extracted to: " & dirToExtract)
	End Sub
End Class
$vbLabelText   $csharpLabel

Im obigen Code wird eine ZIP-Datei namens myFile.zip mit dem System-Namespace verwendet. Die Open-Methode wird verwendet, um die ZIP-Datei in einem bestimmten Modus zu öffnen. Dies kann auch verwendet werden, um neue ZIP-Archivdateien zu erstellen. Einmal geöffnet, können wir mit der Methode AddEntry ein neues Archiveintrag hinzufügen, und dann extrahiert ExtractToDirectory ZIP-Archivdateien in das angegebene Verzeichnis. Wenn das Verzeichnis nicht existiert, wird es mit Directory.CreateDirectory erstellt.

Schritt 2. IronZIP mit NuGet-Paketmanager installieren

Öffnen Sie den Projektmanager aus Visual Studio und suchen Sie nach dem IronZIP-Paket. Dann wählen Sie die neueste Version aus und klicken auf Installieren. Sie können die zu installierende Version aus dem Dropdown ändern. Dann klicken Sie auf Installieren.

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

Eine ZIP-Archivdatei erstellen und Dateien mit IronZIP hinzufügen

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

IronZIP is an archive compression and decompression library developed by Iron Software entwickelt wurde. Neben dem weit verbreiteten ZIP-Format kann sie auch TAR-, GZIP- und BZIP2-Formate verarbeiten.

IronZIP ist eine C# ZIP Archive Library, die Genauigkeit, Benutzerfreundlichkeit und Geschwindigkeit priorisiert. Sein benutzerfreundliches API ermöglicht es Entwicklern, innerhalb von Minuten Archivfunktionen zu modernen .NET-Projekten hinzuzufügen.

IronZIP bietet viele Vorteile gegenüber der System.IO.Compression-Bibliothek. Während der Kompression können Sie das gewünschte Kompressionsverhältnis angeben und auch verschiedene Komprimierungsalgorithmen wie ZIP, TAR, GZIP, BZIP2 verwenden. Es unterstützt auch mobile, Web- und Desktop-Plattformen sowie verschiedene .NET-Versionen.

// Setup: Specify the path for the new ZIP archive
var archivePath = "ironZip.zip";

// Check if the archive already exists, and delete it if so
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}

// Use IronZIP library to create a new ZIP archive
using (var archive = new IronZipArchive(9)) // Compression level: 9 for maximum compression
{
    // Add files to the ZIP archive
    archive.Add("file1.txt");
    archive.Add("file2.txt");

    // Save the archive to the specified path
    archive.SaveAs(archivePath);
}
// Setup: Specify the path for the new ZIP archive
var archivePath = "ironZip.zip";

// Check if the archive already exists, and delete it if so
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}

// Use IronZIP library to create a new ZIP archive
using (var archive = new IronZipArchive(9)) // Compression level: 9 for maximum compression
{
    // Add files to the ZIP archive
    archive.Add("file1.txt");
    archive.Add("file2.txt");

    // Save the archive to the specified path
    archive.SaveAs(archivePath);
}
' Setup: Specify the path for the new ZIP archive
Dim archivePath = "ironZip.zip"

' Check if the archive already exists, and delete it if so
If File.Exists(archivePath) Then
	File.Delete(archivePath)
End If

' Use IronZIP library to create a new ZIP archive
Using archive = New IronZipArchive(9) ' Compression level: 9 for maximum compression
	' Add files to the ZIP archive
	archive.Add("file1.txt")
	archive.Add("file2.txt")

	' Save the archive to the specified path
	archive.SaveAs(archivePath)
End Using
$vbLabelText   $csharpLabel

Der initiale Quellcode wird eingerichtet, indem der Name der ZIP-Archivdatei angegeben und überprüft wird, ob das angegebene Verzeichnis existiert. Dann archivieren wir die Dateien, um mit der Add-Methode eine ZIP-Datei zu erstellen. Der zweite Parameter im Kompressionsparameter ist 1 für niedriger und 9 für höher. Textdateien können verlustfrei mit 9 maximal komprimiert werden, und Bilddateien können niedrigere Kompression verwenden, um Datenverlust zu vermeiden.

Das ZIP-Archivdatei mit IronZIP öffnen

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

// Directory to extract all files from the ZIP archive
var extractionPath = "IronZipFiles";

// Check if the directory exists; if not, create it
if (!Directory.Exists(extractionPath))
{
    Directory.CreateDirectory(extractionPath);
}

// Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath);
// Directory to extract all files from the ZIP archive
var extractionPath = "IronZipFiles";

// Check if the directory exists; if not, create it
if (!Directory.Exists(extractionPath))
{
    Directory.CreateDirectory(extractionPath);
}

// Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath);
' Directory to extract all files from the ZIP archive
Dim extractionPath = "IronZipFiles"

' Check if the directory exists; if not, create it
If Not Directory.Exists(extractionPath) Then
	Directory.CreateDirectory(extractionPath)
End If

' Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath)
$vbLabelText   $csharpLabel

Der obenstehende Code extrahiert ZIP-Dateien in ein Verzeichnis. Der Code überprüft, ob das Verzeichnis existiert, und wenn nicht, wird das ZIP-Archivdatei in das angegebene Verzeichnis extrahiert.

Lizenzierung (Kostenlose Testversion verfügbar)

Für das obige Codebeispiel ist ein Lizenzschlüssel erforderlich. Dieser Schlüssel muss in appsettings.json platziert werden.

{
    "IronZip.LicenseKey": "your license key"
}

Eine Testlizenz ist für Entwickler nach Registrierung hier erhältlich und ja, es ist keine Kreditkarte für eine Testlizenz 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 Methode FromFile von IronZIP, um ein bestehendes Archiv zu öffnen. Diese Methode erfordert auch die Angabe des Dateinamens des neuen Archivs, das als Ausgabe erstellt wird.

// Path to a new file to be added to the existing ZIP archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";

// Open the existing ZIP archive and add a new file
using (var file = IronArchive.FromFile("ironZip.zip", archivePlusPath))
{
    // Add additional files to the existing archive
    file.Add(file3);
}
// Path to a new file to be added to the existing ZIP archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";

// Open the existing ZIP archive and add a new file
using (var file = IronArchive.FromFile("ironZip.zip", archivePlusPath))
{
    // Add additional files to the existing archive
    file.Add(file3);
}
' Path to a new file to be added to the existing ZIP archive
Const file3 As String = ".\image3.png"
Dim archivePlusPath = "ironZipPlus.zip"

' Open the existing ZIP archive and add a new file
Using file = IronArchive.FromFile("ironZip.zip", archivePlusPath)
	' Add additional files to the existing archive
	file.Add(file3)
End Using
$vbLabelText   $csharpLabel

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

Updates

Die IronZIP-Bibliothek wird ständig basierend auf Feedback von Kunden/Nutzern aktualisiert, und alle Updates finden Sie hier.

Abschluss

Abschließend ist das Programmieren von ZIP-Dateien eine wesentliche Fähigkeit, die in der modernen Anwendungsentwicklung, wo Speicher- und Datenübertragungskosten von Cloud-Host-Anbietern berechnet werden, aufgebaut werden sollte. Diese Fähigkeit zu beherrschen, kann Programmierern helfen, die Kosten der Anwendung zu reduzieren und die Leistung der Anwendung zu verbessern.

Indem Sie die Installationsschritte befolgen und die bereitgestellten Codebeispiele erkunden, können Entwickler die Leistung von IronZIP schnell nutzen, um ZIP-Aufgaben mit Leichtigkeit zu bewältigen. Da mehr und mehr Anwendungen modernisiert und in die Cloud verlagert werden, rüstet eine zuverlässige ZIP-Bibliothek wie IronZIP C#-Entwickler mit den Werkzeugen aus, die erforderlich sind, um den Anforderungen der modernen Anwendungsentwicklung gerecht zu werden. Nutzen Sie also die Leistung von IronZIP und entdecken Sie neue Möglichkeiten, mit ZIP-Dateien in Ihren C#-Anwendungen zu arbeiten.

IronZIP bietet umfangreiche Unterstützung für seine Entwickler. Um mehr darüber zu erfahren, wie IronZIP für C# funktioniert, besuchen Sie hier. IronZIP offers a free trial license which is a great opportunity to know IronZIP und seine Funktionen kennenzulernen.

Iron Software hat verschiedene andere Bibliotheken. Entdecken Sie sie, um mehr Wissen zu gewinnen und Ihre Fähigkeiten zu aktualisieren, um moderne Anwendungen zu programmieren/entwickeln.

Häufig gestellte Fragen

Wie öffne ich eine ZIP-Datei in C#?

Sie können eine ZIP-Datei in C# mit der System.IO.Compression-Bibliothek öffnen. Alternativ bietet IronZIP erweiterte Funktionen zum Handhaben von ZIP-Dateien, was einen einfacheren und effizienteren Weg zur Verwaltung Ihrer Archive bietet.

Wie kann ich Dateien aus einem ZIP-Archiv mit C# extrahieren?

Mit IronZIP können Sie Dateien aus einem ZIP-Archiv mit der IronArchive.ExtractArchiveToDirectory-Methode extrahieren. Diese Methode erfordert, dass Sie die ZIP-Datei und das Zielverzeichnis für die Extraktion angeben.

Was sind die Vorteile der Verwendung von ZIP-Dateien in der Anwendungsentwicklung?

ZIP-Dateien verringern die Dateigröße, was zu schnelleren Übertragungszeiten führt, und ermöglichen es, mehrere Dateien in einem einzigen Archiv zusammenzufassen. IronZIP erweitert diese Vorteile mit zusätzlichen Funktionen wie der Spezifikation von Kompressionsverhältnissen und der Unterstützung mehrerer Formate.

Wie füge ich Dateien zu einem vorhandenen ZIP-Archiv in C# hinzu?

Um Dateien zu einem vorhandenen ZIP-Archiv mit IronZIP hinzuzufügen, nutzen Sie die IronArchive.FromFile-Methode, um das Archiv zu öffnen, und verwenden Sie dann die Add-Methode, um neue Dateien hinzuzufügen. Speichern Sie das aktualisierte Archiv, um den Vorgang abzuschließen.

Kann ich eine neue ZIP-Datei erstellen und Dateien mit IronZIP hinzufügen?

Ja, mit IronZIP können Sie eine neue ZIP-Datei erstellen, indem Sie den Archivpfad angeben und Dateien mit der Add-Methode hinzufügen. Das Archiv wird dann mit der SaveAs-Methode gespeichert.

Wie kann ich IronZIP mit dem NuGet-Paket-Manager installieren?

Um IronZIP über den NuGet-Paket-Manager zu installieren, öffnen Sie den Projektmanager in Visual Studio, suchen Sie nach IronZIP, wählen Sie die neueste Version und klicken Sie auf Installieren. Dadurch wird IronZIP zu Ihrem Projekt hinzugefügt, sodass Sie ZIP-Dateien verwalten können.

Unterstützt IronZIP mehrere Kompressionsformate?

Ja, IronZIP unterstützt mehrere Kompressionsformate, einschließlich ZIP, TAR, GZIP und BZIP2, und bietet Flexibilität für verschiedene Anwendungsanforderungen.

Gibt es eine kostenlose Testversion für IronZIP?

Ja, IronZIP bietet eine kostenlose Testversion für Entwickler. Sie können sich auf der Iron Software-Website registrieren, um auf die Testversion zuzugreifen, ohne eine Kreditkarte zu benötigen.

Was macht IronZIP zu einer geeigneten Wahl für die moderne Anwendungsentwicklung?

IronZIP ist bekannt für seine Benutzerfreundlichkeit, Geschwindigkeit und plattformübergreifende Kompatibilität. Diese Merkmale, zusammen mit seinen erweiterten Funktionen, machen es zu einer idealen Wahl für die moderne Anwendungsentwicklung.

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