.NET-HILFE

SevenZip C# (So funktioniert's für Entwickler)

Veröffentlicht 24. Dezember 2023
Teilen Sie:

Einführung

Im Bereich der Komprimierungs- und Archivierungsprogramme für Dateieinträge sticht 7-Zip als vielseitige Open-Source-Lösung hervor. SevenZip ist bekannt für seine hohen Komprimierungsraten und die Unterstützung verschiedener Archivformate und hat sich zu einer beliebten Wahl für Anwender entwickelt, die eine effiziente Dateiverwaltung suchen. In diesem Artikel erfahren Sie, was 7-Zip ist, wie es funktioniert, seine Hauptmerkmale, das einzigartige 7z-Format, Kompressionsraten und sein .NET SDK für C#, das bei der Erstellung von 7z-Archiven hilft. Außerdem werden wir IronZIP als alternative Lösung im .NET-Ökosystem vorstellen.

Was ist SevenZip?

SevenZip oder 7-Zip ist ein kostenloses und quelloffenes Dateiarchivierungsprogramm, mit dem Dateien komprimiert und dekomprimiert werden können. Das von Igor Pavlov entwickelte 7-Zip unterstützt eine breite Palette von Komprimierungsformaten und ist damit ein vielseitiges Werkzeug für die Verwaltung und Organisation von Daten.

Sevenzip C# (Wie es für Entwickler funktioniert) Abbildung 1 - 7-Zip

Hauptmerkmale

  • Hohe Komprimierungsrate: Eine der wichtigsten Eigenschaften von 7-Zip ist seine Fähigkeit, hohe Komprimierungsraten zu erreichen, die oft andere Archivierungsprogramme übertreffen. Dies kann zu erheblichen Einsparungen an Speicherplatz und einer schnelleren Übertragung von Dateien in einen Ordner führen.
  • Breite Formatunterstützung: 7-Zip kann eine Vielzahl von Archivformaten verarbeiten, darunter 7z, ZIP, TAR, GZIP und andere. Diese Vielseitigkeit gewährleistet die Kompatibilität mit verschiedenen Betriebssystemen und Software.
  • Verschlüsselung und Sicherheit: 7-Zip bietet starke Verschlüsselungsfunktionen, mit denen Benutzer ihre Archive mit AES-256-Verschlüsselung sichern können. Dies gewährleistet, dass sensible Daten geschützt bleiben.
  • Befehlszeilenunterstützung: Zusätzlich zu seiner benutzerfreundlichen grafischen Oberfläche bietet 7-Zip eine Befehlszeilenversion für Benutzer, die bei der Dateiverwaltung Automatisierung und Skripterstellung bevorzugen.

Wie es funktioniert

7-Zip verwendet fortschrittliche Komprimierungsalgorithmen, um die Größe von Dateien und Ordnern zu reduzieren. Es verwendet das LZMA (Lempel-Ziv-Markov-Ketten-Algorithmus) kompressionsalgorithmus für sein natives 7z-Format, was zu seinen beeindruckenden Kompressionsraten beiträgt. Das Dienstprogramm unterstützt auch andere gängige Formate wie ZIP, TAR und GZIP.

7z-Format

Das 7z-Format ist das proprietäre Format, das von 7-Zip für seine Archive verwendet wird. Es verwendet den LZMA-Kompressionsalgorithmus, der für seine hervorragenden Kompressionsraten bekannt ist. Das 7z-Format unterstützt Funktionen wie solide Komprimierung, Dateisplitting und selbstextrahierende Archive.

Verdichtungsverhältnis

7-Zip ist bekannt für seine hervorragenden Kompressionsraten, insbesondere bei Verwendung des 7z-Formats mit dem LZMA-Algorithmus. Diese Effizienz führt zu kleineren Archivgrößen, ohne die Integrität der komprimierten Dateien zu beeinträchtigen. Mit 7-Zip erstellte Dateien sind 30-70 % besser komprimiert als das normale ZIP-Format.

7-Zip LZMA SDK für C#

Für Entwickler, die in C# arbeiten, stellt 7-Zip ein .NET SDK zur Verfügung, das die nahtlose Integration von 7-Zip-Funktionen in eigene Anwendungen ermöglicht. Das SDK ermöglicht es Entwicklern, Komprimierungs- und Dekomprimierungsvorgänge programmatisch auszuführen und bietet so Flexibilität bei der Verwaltung archivierter Dateien in C#-Projekten.

Wenn Sie 7-Zip in einer C#-Anwendung verwenden möchten, können Sie das 7-Zip SDK nutzen oder die Befehlszeilenanwendung in Ihrem C#-Code verwenden. Hier ist ein kurzer Überblick über beide Ansätze

1. 7-Zip SDK (7z.dll)

Das 7-Zip SDK enthält die Bibliothek 7z.dll, die Sie in Ihrem C#-Projekt verwenden können. Mit diesem Ansatz können Sie Komprimierungs- und Dekomprimierungsvorgänge programmatisch durchführen.

Hier ist das Quellcode-Beispiel, das das 7-Zip SDK verwendet:

using SevenZip;
class Program
{
    static void Main()
    {
        // Specify the path to the 7z.dll library
        SevenZipBase.SetLibraryPath("path_to_7z.dll");
        // Create a SevenZipExtractor or SevenZipCompressor instance
        // Perform compression or decompression operations as needed
        // Example: Extract files from an archive
        using (var extractor = new SevenZipExtractor("archive.7z"))
        {
            extractor.ExtractArchive("output_directory");
        }
        // Example: Compress files into an archive
        using (var compressor = new SevenZipCompressor())
        {
        // Add File entry in archive
            compressor.CompressFiles("archive.7z", "file1.txt", "file2.txt");
        }
    }
}
using SevenZip;
class Program
{
    static void Main()
    {
        // Specify the path to the 7z.dll library
        SevenZipBase.SetLibraryPath("path_to_7z.dll");
        // Create a SevenZipExtractor or SevenZipCompressor instance
        // Perform compression or decompression operations as needed
        // Example: Extract files from an archive
        using (var extractor = new SevenZipExtractor("archive.7z"))
        {
            extractor.ExtractArchive("output_directory");
        }
        // Example: Compress files into an archive
        using (var compressor = new SevenZipCompressor())
        {
        // Add File entry in archive
            compressor.CompressFiles("archive.7z", "file1.txt", "file2.txt");
        }
    }
}
Imports SevenZip
Friend Class Program
	Shared Sub Main()
		' Specify the path to the 7z.dll library
		SevenZipBase.SetLibraryPath("path_to_7z.dll")
		' Create a SevenZipExtractor or SevenZipCompressor instance
		' Perform compression or decompression operations as needed
		' Example: Extract files from an archive
		Using extractor = New SevenZipExtractor("archive.7z")
			extractor.ExtractArchive("output_directory")
		End Using
		' Example: Compress files into an archive
		Using compressor = New SevenZipCompressor()
		' Add File entry in archive
			compressor.CompressFiles("archive.7z", "file1.txt", "file2.txt")
		End Using
	End Sub
End Class
VB   C#

Stellen Sie sicher, dass Sie "path_to_7z.dll" durch den tatsächlichen Pfad zur 7z.dll-Bibliothek ersetzen. Sie finden die Datei 7z.dll im Installationsverzeichnis von 7-Zip.

2. Befehlszeilen-Ausführbare Datei

Alternativ können Sie die 7-Zip Befehlszeilenanwendung verwenden (7z.exe) in Ihrem C#-Quellcode, indem Sie es über die Klasse System.Diagnostics.Process aufrufen.

using System.Diagnostics;
class Program
{
    static void Main()
    {
        // Example: Extract files from an archive using the command-line executable
        string archivePath = "archive.7z";
        string outputPath = "output_directory";
        ProcessStartInfo processStartInfo = new ProcessStartInfo
        {
            FileName = "7z.exe",
            Arguments = $"x \"{archivePath}\" -o\"{outputPath}\"",
            RedirectStandardOutput = true,
            UseShellExecute = false,
            CreateNoWindow = true
        };
        using (Process process = new Process { StartInfo = processStartInfo })
        {
            process.Start();
            process.WaitForExit();
        }
    }
}
using System.Diagnostics;
class Program
{
    static void Main()
    {
        // Example: Extract files from an archive using the command-line executable
        string archivePath = "archive.7z";
        string outputPath = "output_directory";
        ProcessStartInfo processStartInfo = new ProcessStartInfo
        {
            FileName = "7z.exe",
            Arguments = $"x \"{archivePath}\" -o\"{outputPath}\"",
            RedirectStandardOutput = true,
            UseShellExecute = false,
            CreateNoWindow = true
        };
        using (Process process = new Process { StartInfo = processStartInfo })
        {
            process.Start();
            process.WaitForExit();
        }
    }
}
Imports System.Diagnostics
Friend Class Program
	Shared Sub Main()
		' Example: Extract files from an archive using the command-line executable
		Dim archivePath As String = "archive.7z"
		Dim outputPath As String = "output_directory"
		Dim processStartInfo As New ProcessStartInfo With {
			.FileName = "7z.exe",
			.Arguments = $"x ""{archivePath}"" -o""{outputPath}""",
			.RedirectStandardOutput = True,
			.UseShellExecute = False,
			.CreateNoWindow = True
		}
		Using process As New Process With {.StartInfo = processStartInfo}
			process.Start()
			process.WaitForExit()
		End Using
	End Sub
End Class
VB   C#

Stellen Sie sicher, dass sich "7z.exe" im PATH Ihres Systems befindet, oder geben Sie den vollständigen Pfad zur ausführbaren Datei in der Eigenschaft "Dateiname" an.

Einführung in IronZIP

7-Zip ist zwar eine robuste Lösung, aber für Entwickler, die nach Alternativen innerhalb des .NET-Ökosystems suchen, ist IronZIP vielleicht eine überzeugende Wahl. IronZIP ist eine .NET-Komprimierungsbibliothek, die ähnliche Funktionen wie 7-Zip bietet und Entwicklern die Werkzeuge zum Komprimieren, Dekomprimieren und Manipulieren von Archiven in ihren C#-Anwendungen zur Verfügung stellt.

Sevenzip C# (So funktioniert es für Entwickler) Abbildung 2 - IronZIP

IronZIP ist eine leistungsstarke C#-ZIP-Archivbibliothek, die die Arbeit mit ZIP-Dateien in .NET-Anwendungen vereinfacht. Mit seiner benutzerfreundlichen API können Entwickler effizient erstellen, lesen und extrahieren ZIP-Archive. Hier ist ein einfacher Codeschnipsel, der zeigt, wie einfach die Erstellung eines ZIP-Archivs ironZIP verwenden:

using IronZip;
class Program
{
    static void Main()
    {
        // Specify the path for the new ZIP archive
        string zipFilePath = "output.zip";
        // Create an empty ZIP archive
        using (var archive = new IronArchive(zipFilePath))
        {
            // Add files to the ZIP
            archive.AddArchiveEntry("./assets/file1.txt");
            archive.AddArchiveEntry("./assets/file2.jpg");
            archive.AddArchiveEntry("./assets/file3.pdf");
        }
        Console.WriteLine("ZIP archive created successfully!");
    }
}
using IronZip;
class Program
{
    static void Main()
    {
        // Specify the path for the new ZIP archive
        string zipFilePath = "output.zip";
        // Create an empty ZIP archive
        using (var archive = new IronArchive(zipFilePath))
        {
            // Add files to the ZIP
            archive.AddArchiveEntry("./assets/file1.txt");
            archive.AddArchiveEntry("./assets/file2.jpg");
            archive.AddArchiveEntry("./assets/file3.pdf");
        }
        Console.WriteLine("ZIP archive created successfully!");
    }
}
Imports IronZip
Friend Class Program
	Shared Sub Main()
		' Specify the path for the new ZIP archive
		Dim zipFilePath As String = "output.zip"
		' Create an empty ZIP archive
		Using archive = New IronArchive(zipFilePath)
			' Add files to the ZIP
			archive.AddArchiveEntry("./assets/file1.txt")
			archive.AddArchiveEntry("./assets/file2.jpg")
			archive.AddArchiveEntry("./assets/file3.pdf")
		End Using
		Console.WriteLine("ZIP archive created successfully!")
	End Sub
End Class
VB   C#

Weitere Informationen zu IronZIP und seinen Funktionen sowie Codebeispiele finden Sie auf der Website dokumentation seite.

Schlussfolgerung

7-Zip ist nach wie vor eine dominierende Kraft in der Welt der Dateikomprimierung und bietet Anwendern eine Open-Source-Lösung mit vielen Funktionen und außergewöhnlichen Komprimierungsraten. Die Unterstützung verschiedener Archivformate und die starken Verschlüsselungsfunktionen machen es zu einer vielseitigen Wahl für Gelegenheitsnutzer und Entwickler gleichermaßen. Das .NET SDK erweitert den Nutzen für C#-Entwickler und erleichtert die nahtlose Integration in eigene Anwendungen. Für diejenigen, die eine Alternative im .NET-Bereich suchen, ist IronZIP ein bemerkenswerter Konkurrent, der ähnliche Funktionen bietet, die auf die speziellen Bedürfnisse von C#-Entwicklern zugeschnitten sind.

IronZIP bietet eine kostenlose Testversion seite. IronZIP for .NET Core und .NET-Framework Bibliothek herunterladen und ausprobieren hier.

< PREVIOUS
Mailkit C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
ByteSize C# (Wie es für Entwickler funktioniert)

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

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >