Przejdź do treści stopki
POMOC .NET

SevenZip C# (Jak to działa dla programistów)

W dziedzinie narzędzi do kompresji i archiwizacji plików, 7-Zip wyróżnia się jako wszechstronne rozwiązanie open-source. Znany ze swoich wysokich współczynników kompresji i obsługi różnych formatów archiwów, 7-Zip stał się popularnym wyborem dla użytkowników poszukujących efektywnego zarządzania plikami. W tym artykule zbadamy, czym jest 7-Zip, jak działa, jego główne cechy, unikalny format 7z, współczynniki kompresji oraz jego .NET SDK dla C#, które pomaga w tworzeniu archiwów 7z. Dodatkowo, zaprezentujemy IronZIP jako alternatywne rozwiązanie w ekosystemie .NET.

Czym jest 7-Zip?

7-Zip jest darmowym i otwartym narzędziem do archiwizacji plików, które pozwala użytkownikom kompresować i dekompresować pliki. Opracowany przez Igora Pavlova, 7-Zip obsługuje szeroki zakres formatów kompresji, co czyni go wszechstronnym narzędziem do zarządzania i organizowania danych.

Sevenzip C# (Jak To Działa Dla Deweloperów) Rysunek 1 - 7-Zip

Główne cechy

  • Wysoki współczynnik kompresji: Jedną z kluczowych cech 7-Zip jest jego zdolność do osiągania wysokich współczynników kompresji, często przewyższających inne narzędzia archiwizacyjne. To może skutkować znaczącymi oszczędnościami w zakresie przestrzeni dyskowej i szybszymi transferami plików do folderu.
  • Szeroka obsługa formatów: 7-Zip może obsługiwać różnorodne formaty archiwów, w tym 7z, ZIP, TAR, GZIP i inne. Ta wszechstronność zapewnia kompatybilność z różnymi systemami operacyjnymi i oprogramowaniem.
  • Szyfrowanie i bezpieczeństwo: 7-Zip zapewnia mocne możliwości szyfrowania, pozwalając użytkownikom zabezpieczać swoje archiwa szyfrowaniem AES-256. To zapewnia, że wrażliwe dane pozostają chronione.
  • Obsługa wiersza poleceń: Oprócz przyjaznego użytkownikowi interfejsu graficznego, 7-Zip oferuje wersję wiersza poleceń dla użytkowników, którzy preferują automatyzację i skryptowanie w swoich zadaniach związanych z zarządzaniem plikami.

Jak to działa

7-Zip korzysta z zaawansowanych algorytmów kompresji, aby zmniejszyć rozmiar plików i folderów. Używa algorytmu kompresji LZMA (Lempel-Ziv-Markov chain-Algorithm) dla swojego natywnego formatu 7z, co przyczynia się do jego imponujących współczynników kompresji. Narzędzie obsługuje również inne popularne formaty takie jak ZIP, TAR i GZIP.

Format 7z

Format 7z jest formatem zastrzeżonym używanym przez 7-Zip dla jego archiwów. Korzysta z algorytmu kompresji LZMA, który jest znany z doskonałych współczynników kompresji. Format 7z obsługuje funkcje takie jak kompresja stała, dzielenie plików i archiwa samorozpakowujące się.

Stosunek kompresji

7-Zip jest znany ze swoich wyjątkowych współczynników kompresji, zwłaszcza przy użyciu formatu 7z z algorytmem LZMA. Ta efektywność skutkuje mniejszymi rozmiarami archiwów bez uszczerbku dla integralności skompresowanych plików. Pliki utworzone przez 7-Zip są kompresowane o 30-70% lepiej niż normalny format ZIP.

7-Zip LZMA SDK for C#

Dla deweloperów pracujących w C#, 7-Zip oferuje .NET SDK, które umożliwia łatwą integrację funkcji 7-Zip w aplikacjach dedykowanych. SDK pozwala deweloperom wykonywać operacje kompresji i dekompresji programistycznie, zapewniając elastyczność w zarządzaniu archiwizowanymi plikami w projektach C#.

Jeśli chcesz używać 7-Zip w aplikacji C#, możesz skorzystać z 7-Zip SDK lub użyć wykonywalnego wiersza poleceń w swoim kodzie C#. Oto krótki przegląd obu podejść.

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

7-Zip SDK zawiera bibliotekę 7z.dll, którą można używać w swoim projekcie C#. To podejście pozwala na programistyczne wykonywanie operacji kompresji i dekompresji.

Oto przykład kodu źródłowego używającego 7-Zip SDK:

using SevenZip;

class Program
{
    static void Main()
    {
        // Specify the path to the 7z.dll library
        SevenZipBase.SetLibraryPath("path_to_7z.dll");

        // 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 files to the 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");

        // 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 files to the 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")

		' 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 files to the archive
			compressor.CompressFiles("archive.7z", "file1.txt", "file2.txt")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Upewnij się, aby zastąpić "path_to_7z.dll" rzeczywistą ścieżką do biblioteki 7z.dll. Plik 7z.dll można znaleźć w katalogu instalacyjnym 7-Zip.

2. Wykonywalny wiersz poleceń

Alternatywnie, możesz używać wykonywalnego wiersza poleceń 7-Zip (7z.exe) w swoim kodzie źródłowym C# przez wywołanie go przez klasę System.Diagnostics.Process.

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
$vbLabelText   $csharpLabel

Upewnij się, że "7z.exe" jest w ścieżce systemowej lub podaj pełną ścieżkę do pliku wykonywalnego w właściwości FileName.

Przedstawiamy IronZIP

Podczas gdy 7-Zip jest solidnym rozwiązaniem, deweloperzy poszukujący alternatyw w ramach ekosystemu .NET mogą uznać IronZIP za atrakcyjny wybór. IronZIP jest biblioteką kompresji .NET, która oferuje funkcje podobne do 7-Zip, zapewniając deweloperom narzędzia do kompresji, dekompresji i manipulacji archiwami w ramach aplikacji C#.

Sevenzip C# (Jak To Działa Dla Deweloperów) Rysunek 2 - IronZIP

IronZIP to potężna biblioteka archiwów ZIP w C#, która ułatwia pracę z plikami ZIP w aplikacjach .NET. Dzięki przyjaznemu interfejsowi API deweloperzy mogą efektywnie tworzyć, czytać i wyodrębniać archiwa ZIP z IronZIP. Oto prosty fragment kodu pokazujący łatwość tworzenia archiwum ZIP przy użyciu IronZIP:

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
$vbLabelText   $csharpLabel

Aby uzyskać więcej informacji na temat IronZIP i jego możliwości lub przykładów kodu, odwiedź stronę dokumentacji IronZIP.

Podsumowanie

7-Zip nadal jest dominującą siłą w świecie kompresji plików, oferując użytkownikom otwartoźródłowe, bogate w funkcje rozwiązanie z wyjątkowymi współczynnikami kompresji. Jego obsługa różnych formatów archiwów i silne możliwości szyfrowania czynią go wszechstronnym wyborem zarówno dla zwykłych użytkowników, jak i deweloperów. .NET SDK jeszcze bardziej rozszerza jego użyteczność dla deweloperów C#, ułatwiając bezproblemową integrację z aplikacjami dedykowanymi. Dla tych, którzy szukają alternatywy w środowisku .NET, IronZIP wyróżnia się jako godny uwagi konkurent, oferując podobną funkcjonalność dopasowaną do specyficznych potrzeb deweloperów C#.

IronZIP oferuje darmową wersję próbną dla IronZIP. Pobierz i wypróbuj bibliotekę IronZIP .NET Core i Framework ze strony pobierania IronZIP.

Często Zadawane Pytania

Czym jest 7-ZIP i dłączego jest popularny?

7-Zip to narzędzie do archiwizacji plików typu open source, znane z wysokiego stopnia kompresji i obsługi wielu formatów archiwów, takich jak 7z, ZIP, TAR i GZIP. Jest popularne ze względu na wydajność w zarządzaniu danymi oraz silne szyfrowanie AES-256 zapewniające bezpieczeństwo.

Czym format 7z różni się od innych formatów?

Format 7z wykorzystuje algorytm kompresji LZMA, który zapewnia doskonałą wydajność kompresji, osiągając zazwyczaj o 30–70% lepszą kompresję niż standardowe formaty ZIP. Dzięki temu idealnie nadaje się dla użytkowników, dla których priorytetem jest zmniejszenie rozmiaru plików.

W jaki sposób programiści mogą wykorzystać 7-ZIP w projektach C#?

Programiści mogą wykorzystać zestaw 7-Zip .NET SDK, który zawiera bibliotekę 7z.dll, do programowego wbudowania funkcji kompresji i dekompresji w aplikacje napisane w języku C#. Alternatywnie do zarządzania archiwami można użyć narzędzia wiersza poleceń 7z.exe.

Jakie korzyści zapewnia IronZIP for .NET?

IronZIP oferuje przyjazny dla użytkownika interfejs API dla aplikacji .NET, upraszczający tworzenie, odczytywanie i wyodrębnianie plików ZIP. Jest to realna alternatywa dla programistów poszukujących łatwości użytkowania i solidnych możliwości zarządzania plikami ZIP w projektach C#.

Czy mogę używać programu 7-ZIP do szyfrowania plików?

Tak, 7-ZIP zapewnia silne możliwości szyfrowania przy użyciu algorytmu AES-256, umożliwiając użytkownikom bezpieczne szyfrowanie plików i ochronę poufnych danych podczas kompresji.

Czy dostępna jest wersja próbna programu IronZIP?

Tak, IronZIP oferuje bezpłatną wersję próbną, którą można pobrać z ich strony internetowej. Ta wersja próbna pozwala programistom zapoznać się z jej funkcjami i zintegrować zarządzanie plikami ZIP w aplikacjach .NET.

Jakie są główne funkcje programu 7-ZIP?

Funkcje programu 7-ZIP obejmują wysoki stopień kompresji, obsługę szerokiej gamy formatów, silne szyfrowanie AES-256 oraz przyjazny dla użytkownika interfejs i obsługę wiersza poleceń, dostosowane do różnorodnych potrzeb użytkowników.

Jak mogę korzystać z archiwizacji plików w aplikacji napisanej w języku C#?

W aplikacjach napisanych w języku C# można korzystać z archiwizacji plików, wykorzystując biblioteki takie jak 7-Zip SDK z biblioteką 7z.dll lub IronZIP, które oferują kompleksowe narzędzia do kompresji i rozpakowywania plików.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie