Zum Fußzeileninhalt springen
MIT ANDEREN KOMPONENTEN VERGLEICHEN

ZIP-Archiv-Tutorial für C#-Entwickler mit IronXL

Einführung in ZipArchive

Wann immer Sie daran denken, eine Datei in einem komprimierten Format zu versenden, kommt einem zuerst ein Zip-Archiv in den Sinn. Ein Zip-Archiv ist ein beliebtes Format zum Komprimieren und Packen einer einzelnen Datei oder einer gesamten Sammlung in ein einziges Archiv. Wenn es jedoch große Mengen von Dateien zu zippen gibt, kann die Arbeit damit frustrierend werden, da Sie sie einzeln archivieren und formatieren müssten. Aber das muss nicht so sein. Aufgaben mit hohem Volumen benötigen Automatisierung, um programmgesteuert durchgeführt zu werden. Wir können IronZip verwenden, eine einfache, aber intuitive Bibliothek, um all dies und mehr zu erreichen.

In diesem Artikel werden wir kurz die Kernfunktionen und -eigenschaften von IronZip diskutieren und wie es Ihnen helfen kann, Ihren Arbeitsablauf besser zu automatisieren, die Effizienz zu steigern und fehleranfällige manuelle Aufgaben zu eliminieren.

Erstellen einer neuen Zip-Datei aus einem Ordner oder Dateien

Unten finden Sie ein Beispiel, das mehrere Dateien aufnimmt, sie in ein Archiv zippt und nach dem Vorgang exportiert. Alle Beispiele in diesem Artikel sind in der Methode static void Main() eingebettet, um sich wiederholende Codeblöcke zu vermeiden.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Create an empty ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Add files to the ZIP archive
            archive.Add("./assets/image1.jpg");
            archive.Add("./assets/image2.jpg");
            archive.Add("./assets/image3.jpg");

            // Export the ZIP archive to a file
            archive.SaveAs("output.zip");
        }
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Create an empty ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Add files to the ZIP archive
            archive.Add("./assets/image1.jpg");
            archive.Add("./assets/image2.jpg");
            archive.Add("./assets/image3.jpg");

            // Export the ZIP archive to a file
            archive.SaveAs("output.zip");
        }
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create an empty ZIP archive
		Using archive = New IronZipArchive()
			' Add files to the ZIP archive
			archive.Add("./assets/image1.jpg")
			archive.Add("./assets/image2.jpg")
			archive.Add("./assets/image3.jpg")

			' Export the ZIP archive to a file
			archive.SaveAs("output.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel
  1. Zunächst importieren wir IronZip.
  2. Dann erstellen wir mit IronZip ein Archiv.
  3. Wir rufen archive.Add() auf, um mehrere Dateien zum Archiv hinzuzufügen. Denken Sie daran, dass Pfadnamen absolute Pfade sein müssen, sonst kann der Vorgang die entsprechenden Dateien nicht finden.
  4. Schließlich rufen wir archive.SaveAs() auf, um das Zip-Archiv als output.zip zu exportieren.

Aktualisieren einer bestehenden Zip-Datei mit neuen Dateien oder Änderungen

Lassen Sie uns ein weiteres Beispiel durchgehen; diesmal werden wir das bestehende Zip-Archiv mit neuen Dateien bearbeiten, um die Funktionalität von IronZip zu demonstrieren.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive
        using (var archive = IronZipArchive.FromFile("existing.zip"))
        {
            // Add additional files to the existing ZIP archive
            archive.Add("./assets/image3.png");
            archive.Add("./assets/image4.png");

            // Export the updated ZIP archive to a new file
            archive.SaveAs("result.zip");
        }
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive
        using (var archive = IronZipArchive.FromFile("existing.zip"))
        {
            // Add additional files to the existing ZIP archive
            archive.Add("./assets/image3.png");
            archive.Add("./assets/image4.png");

            // Export the updated ZIP archive to a new file
            archive.SaveAs("result.zip");
        }
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Open an existing ZIP archive
		Using archive = IronZipArchive.FromFile("existing.zip")
			' Add additional files to the existing ZIP archive
			archive.Add("./assets/image3.png")
			archive.Add("./assets/image4.png")

			' Export the updated ZIP archive to a new file
			archive.SaveAs("result.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel
  1. Zunächst importieren wir IronZip.
  2. Mit IronZip erstellen wir ein Archiv, aber diesmal importieren wir die bestehende Zip-Datei mit IronZipArchive.FromFile().
  3. Wir rufen archive.Add() auf, um die gewünschten Dateien zum Archiv hinzuzufügen. Denken Sie daran, dass Pfadnamen absolute Pfade sein müssen, sonst kann der Vorgang die vorhandenen Dateien nicht finden.
  4. Schließlich rufen wir archive.SaveAs() auf, um das aktualisierte Zip-Archiv als result.zip zu exportieren.

Wie Sie anhand des obigen Codes sehen können, sind der Vorgang und das Format ähnlich denen, die verwendet werden, um eine Zip-Datei zu erstellen und Dateien hinzuzufügen. Der Hauptunterschied besteht darin, dass wir stattdessen die Zip-Datei importieren, was die einfache und dennoch intuitive Funktionalität von IronZip zeigt.

Dateien aus einem Zip-Archiv extrahieren

Wir können IronZip auch verwenden, um Dateien aus einem Zip-Archiv oder Zip-Paket zu extrahieren. Lassen Sie uns dies in einem weiteren Beispiel überprüfen.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract the ZIP archive content to a specified directory
		IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted")
	End Sub
End Class
$vbLabelText   $csharpLabel

Wir importieren IronZip und rufen IronZipArchive.ExtractArchiveToDirectory() auf. Diese Methode extrahiert den Inhalt des vorhandenen Zip-Archivs in das angegebene Zielverzeichnis.

Darüber hinaus können wir in Fällen, in denen Sie mit passwortgeschützten Zip-Archiven umgehen müssen, eine andere Methode verwenden, um die Archive zu extrahieren.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the protected ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the protected ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract the protected ZIP archive content to a specified directory
		IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd")
	End Sub
End Class
$vbLabelText   $csharpLabel

Letztendlich geben wir einen weiteren Parameter ein: das Passwort für das geschützte Zip-Archiv. Der Rest des Vorgangs ist derselbe wie oben gezeigt.

Erweiterte Themen und Best Practices

Die oben besprochenen Codebeispiele zum Hinzufügen, Extrahieren und Erstellen von Archiven sind die gebräuchlichsten beim Umgang mit Zip-Archiven. Für eine fortgeschrittenere Nutzung, wie das Extrahieren anderer Formate oder einfach das Anzeigen des Inhalts des Archivs, deckt IronZIP alles ab und mehr.

Erweiterte Funktionen von IronZIP

  • Plattformübergreifende Kompatibilität: IronZIP ist mit einer Vielzahl von .NET-Versionen kompatibel, einschließlich .NET Core (3.1+), Standard (2.0+) und .NET Framework (4.6.2+). Die Bibliothek funktioniert auch im Web (Blazor), Mobil (MAUI), Desktop (WPF) und Konsole. Dies ermöglicht es Entwicklern, plattform- und versionsbedingte Einschränkungen zu überwinden.

  • Erzeugen von Archiven: Über das ZIP-Format hinaus unterstützt IronZIP das Erstellen von TAR-, GZIP- und BZIP2-Archiven.

  • Extrahieren von Archiven: Extrahieren Sie Archive und dekomprimieren Sie Dateien einfach mit einem einzigen Codeblock mit IronZIP, wie oben demonstriert.

  • Dateien und Dateisysteme hinzufügen: IronZIP hilft beim Manipulieren von Zip-Archiven, indem es Bilder, Textdateien und Dokumente (wie PDFs, DOCX und XLSX) sowie Audiodateien wie MP3 und WAV hinzufügt. Es kann sogar gesamte Dateisysteme oder einzelne Textdateien in ein ZipArchive-Archiv komprimieren.

  • Exportieren und Erstellen: Sie können Archive mit AES128- und AES256-Standards passwortschützen. Zusätzlich können Sie Formate wie TAR, GZIP und BZIP2 generieren und exportieren.

  • Benutzerdefinierte Kompressionsstufen: IronZIP ermöglicht es Entwicklern, die Kompressionseinstellungen anzupassen, um den Algorithmus an ihre Bedürfnisse anzupassen.

  • Bearbeiten von Archiven: Einfaches Hinzufügen, Extrahieren oder Löschen von Dateieinträgen in einem Archiv mit IronZIP als umfassende Lösung für Bearbeitungsoperationen.

  • Dateieintragseigenschaften: IronZIP bietet die Möglichkeit, optionale Archivkommentare zu setzen und Dateinamen innerhalb des Archivs abzurufen, ohne sie zu extrahieren, was hilft, spezifische Kommentare für jede Datei zu hinterlassen.

  • Lizenzierungsoptionen: IronZIP bietet anpassbare Lizenzierungsoptionen, einschließlich kostenloser Testversionen, sodass Entwickler auswählen können, was am besten zu ihren Anforderungen passt.

Abschluss

Der Umgang mit komprimierten Dateien und Archiven ist eine tägliche Aufgabe, mit der Entwickler oft konfrontiert sind, aber das Verwalten einer großen Menge davon kann stressig und fehleranfällig sein. Obwohl es Optionen wie System.IO.Compression gibt, ermöglicht Ihnen der Einsatz von IronZIP, mehr zu erreichen und Probleme schnell zu lösen, wenn Sie mit komprimierten Archiven arbeiten. In diesem Artikel haben wir die erweiterten Funktionen von IronZIP und häufige Operationen wie das Erstellen von Zip-Archiven, das Löschen von Einträgen oder das Hinzufügen von Dateien diskutiert. Das Verständnis, wie man diese Aufgaben programmatisch mit IronZIP ausführt, führt zu erhöhter Effizienz, Skalierbarkeit und Automatisierung im Umgang mit Archiven.

Hinweis:System.IO.Compression ist ein eingetragenes Warenzeichen seines jeweiligen Eigentümers. Diese Seite ist nicht mit, unterstützt oder gesponsert von System.IO.Compression. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

Wie erstelle ich eine ZIP-Datei aus einem Ordner in C#?

Um eine ZIP-Datei aus einem Ordner in C# zu erstellen, können Sie die IronZip-Bibliothek verwenden. Importieren Sie zuerst die IronZip-Bibliothek, erstellen Sie eine Instanz von IronZipArchive, fügen Sie den Ordner mit archive.AddFolder() hinzu und speichern Sie es mit archive.SaveAs().

Was ist der Vorgang zum Extrahieren von Daten aus einem ZIP-Archiv in C#?

Sie können Daten aus einem ZIP-Archiv in C# mit IronZip extrahieren, indem Sie die Methode IronZipArchive.ExtractArchiveToDirectory() aufrufen. Diese Methode ermöglicht es Ihnen, ein Verzeichnis anzugeben, in das die Inhalte extrahiert werden.

Wie kann ich Inhalte eines ZIP-Archivs programmgesteuert in C# aktualisieren?

Um Inhalte eines ZIP-Archivs programmgesteuert in C# zu aktualisieren, verwenden Sie IronZip, indem Sie das vorhandene Archiv mit IronZipArchive.FromFile() laden, dann archive.Add() verwenden, um Dateien hinzuzufügen, oder archive.Remove(), um Dateien zu löschen, bevor Sie die Änderungen mit archive.SaveAs() speichern.

Kann IronZip passwortgeschützte ZIP-Dateien verarbeiten?

Ja, IronZip kann passwortgeschützte ZIP-Dateien verarbeiten. Sie können ein Passwort angeben, wenn Sie Dateien mit der Methode IronZipArchive.ExtractArchiveToDirectory() extrahieren, indem Sie das Passwort als zusätzlichen Parameter angeben.

Was sind die Vorteile der Verwendung von IronZip gegenüber System.IO.Compression für das ZIP-Datei-Handling?

IronZip bietet erweiterte Funktionen gegenüber System.IO.Compression wie Unterstützung für mehrere Archivformate, Passwortschutz, benutzerdefinierte Kompressionsstufen und die Fähigkeit, Archive zu bearbeiten, indem Dateien hinzugefügt oder gelöscht werden, ohne sie zu extrahieren.

Wie stellt IronZip die Kompatibilität mit verschiedenen .NET-Versionen sicher?

IronZip stellt die Kompatibilität sicher, indem es mehrere .NET-Versionen unterstützt und Entwicklern ermöglicht, ZIP-Datei-Handling-Funktionalitäten in Anwendungen zu integrieren, die auf verschiedenen Plattformen und Frameworks laufen.

Welche erweiterten Funktionen bietet IronZip für die Handhabung von ZIP-Archiven?

IronZip bietet erweiterte Funktionen wie das Erstellen und Extrahieren mehrerer Archivformate (ZIP, TAR, GZIP, BZIP2), Passwortschutz, benutzerdefinierte Kompressionsstufen und umfassende Bearbeitungsmöglichkeiten, ohne Dateien extrahieren zu müssen.

Ist es möglich, Dateieigenschaften innerhalb eines ZIP-Archivs mit IronZip zu verwalten?

Ja, IronZip ermöglicht es Ihnen, Dateieigenschaften wie Kommentare innerhalb eines ZIP-Archivs zu verwalten, ohne die Dateien zuerst extrahieren zu müssen, was die Flexibilität und Effizienz in der Archivverwaltung erhöht.

Wie kann ich die Erstellung und Extraktion von ZIP-Dateien in C# automatisieren?

Sie können die Erstellung und Extraktion von ZIP-Dateien in C# automatisieren, indem Sie IronZip in einer static void Main()-Methode verwenden. Dies ermöglicht es, Prozesse wie das Hinzufügen von Dateien zu einem Archiv, das Extrahieren von Daten und das Aktualisieren bestehender Archive programmgesteuert zu automatisieren.

Unterstützt IronZip die Handhabung gesamter Dateisysteme?

Ja, IronZip unterstützt die Komprimierung und Extraktion ganzer Dateisysteme, wodurch es geeignet ist, große Datenmengen effizient zu verarbeiten.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen