Przejdź do treści stopki
POMOC .NET

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

W dziedzinie narzędzi do kompresji plików i archiwizacji 7-Zip wyróżnią sie jako wszechstronne, otwarte rozwiązanie. Znany z wysokiego wspolczynnika kompresji i wsparcia dla roznorodnych formatow archiwow, 7-Zip stal sie popularnym wyborem dla użytkowników poszukujących efektywnego zarządzania plikami. W tym artykułe odkryjemy, czym jest 7-Zip, jak działa, jego główne funkcje, unikalny format 7z, wspolczynniki kompresji i jego .NET SDK dla C#, ktore pomaga w tworzeniu archiwow 7z. Dodatkowo przedstawimy IronZIP jako alternatywne rozwiązanie w ekosystemie .NET.

Czym jest 7-Zip?

7-Zip to darmowe i otwarte narzędzie do archiwizacji plików, ktore pozwala użytkownikom na kompresowanie i dekompresowanie plików. Opracowany przez Igor Pavlov, 7-Zip obsługuje szeroki zakres formatow kompresji, czyniac go wszechstronnym narzędziem do zarządzania i organizowania danych.

Sevenzip C# (Jak To Dziala Dla Programistow) Rysunek 1 - 7-Zip

Glowne funkcje

  • Wysoki wspolczynnik kompresji: Jedna z kluczowych cech 7-Zip jest możliwość osiagniecia wysokiego wspolczynnika kompresji, często przewyzszajacego inne narzędzia archiwizacji. To może skutkowac znaczacymi oszczednosciami miejsca magazynowania oraz szybszym przesylaniem plików do folderu.
  • Wszechstronne wsparcie formatow: 7-Zip może obsluzyc różne formaty archiwow, w tym 7z, ZIP, TAR, GZIP i wiele innych. Ta wszechstronnosc zapewnia zgodność z różnymi systemami operacyjnymi i oprogramowaniem.
  • Szyfrowanie i zabezpieczenia: 7-Zip oferuje silne możliwości szyfrowania, pozwalając użytkownikom zabezpieczyc swoje archiwa szyfrowaniem AES-256. To zapewnia ochrone danych wrazliwych.
  • Wsparcie linii polecen: Oprocz przyjaznego dla użytkownika interfejsu graficznego, 7-Zip oferuje wersje linii polecen dla użytkowników preferujacych automatyzację i skryptowanie w swoich zadaniach zarządzania plikami.

Jak to działa

7-Zip wykorzystuje zaawansowane algorytmy kompresji do zmniejszania rozmiaru plików i folderow. Uzywa algorytmu kompresji LZMA (Lempel-Ziv-Markov chain-Algorithm) dla swojego rodzimego formatu 7z, co przyczynia sie do jego imponujacych wspolczynnikow kompresji. To narzędzie obsługuje również inne popularne formaty, takie jak ZIP, TAR i GZIP.

Format 7z

Format 7z jest wlasciwym formatem używanym przez 7-Zip dla swoich archiwow. Wykorzystuje algorytm kompresji LZMA, znany ze świetnych wspolczynnikow kompresji. Format 7z wspiera funkcje takie jak solidna kompresja, dzielenie plików i archiwa samorozpakowujace.

Wspolczynnik kompresji

7-Zip jest znany z wyjątkówych wspolczynnikow kompresji, zwlaszcza przy użyciu formatu 7z z algorytmem LZMA. Ta wydajność skutkuje mniejszymi rozmiarami archiwum bez naruszania integralnosci skompresowanych plików. Pliki stworzone przez 7-Zip sa skompresowane 30-70% lepiej niz w normalnym formacie ZIP.

7-Zip LZMA SDK for C

Dla deweloperow pracujacych w C#, 7-Zip oferuje .NET SDK, ktory umożliwia plynna integracje funkcjonalności 7-Zip w własnych aplikacjach. SDK pozwala deweloperom na programowe wykonywanie operacji kompresji i dekompresji, oferujac elastycznosc w zarzadzaniu archiwizowanymi plikami w ramach projektow C#.

Jeśli chcesz uzyc 7-Zip w aplikacji C#, możesz skorzystać z SDK 7-Zip lub uzyc wykonywalnego pliku linii polecen w swoim kodzie C#. Oto krotkie omowienie obu podejsc.

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

SDK 7-Zip zawiera biblioteke 7z.dll, która możesz uzyc w swoim projekcie C#. To podejście pozwala na programowe wykonywanie operacji kompresji i dekompresji.

Oto przykład kodu zrodlowego z użyciem SDK 7-Zip:

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 sie, ze "path_to_7z.dll" zostanie zastapione rzeczywista sciezka do biblioteki 7z.dll. Możesz znalezc plik 7z.dll w katalogu instalacyjnym 7-Zip.

2. Wykonywalny plik linii polecen

Alternatywnie, mozesz uzyc wykonywalnego pliku wiersza polecen 7-Zip (7z.exe) w swoim kodzie zrodłowym C# przez jego wywolanie za pomoca klasy 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 sie, ze "7z.exe" znajduje sie w sciezce PATH systemu lub podaj pelna sciezke do pliku wykonywalnego w wlasciwosci FileName.

Przedstawiamy IronZIP

Chociaż 7-Zip jest solidnym rozwiązaniem, deweloperzy eksplorujacy alternatywy w ekosystemie .NET mogli by uznac IronZIP jako atrakcyjny wybor. IronZIP to biblioteka kompresji .NET, która oferuje funkcje podobne do 7-Zip, oferujac deweloperom narzędzia do kompresji, dekompresji i manipulacji archiwami w ramach ich aplikacji C#.

Sevenzip C# (Jak To Dziala Dla Programistow) Rysunek 2 - IronZIP

IronZIP to wydajna biblioteka ZIP archiwum dla C#, która ułatwia prace z plikami ZIP w aplikacjach .NET. Dzięki przyjaznemu dla użytkownika API, deweloperzy mogą efektywnie tworzyć, odczytywać i rozpakowywac archiwa ZIP przy użyciu IronZIP. Oto prosty przykład kodu pokazujacy łatwość tworzenia archiwum ZIP z użyciem 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, odwiedz dokumentacje IronZIP.

Wnioski

7-Zip pozostaje dominujaca sila w świecie kompresji plików, oferujac otwarte, bogate funkcjonalnie rozwiązanie z wyjątkówymi wspolczynnikami kompresji. Jego wsparcie dla różnych formatow archiwow i silne możliwości szyfrowania czynia go wszechstronnym wyborem dla zarowno zwyklych użytkowników, jak i deweloperow. .NET SDK dodatkowo rozbudowuje jego uzytecznosc dla deweloperow C#, ułatwiajac plynna integracje w własnych aplikacjach. Dla tych, ktorzy poszukują alternatywy w przestrzeni .NET, IronZIP wyrasta na godnego uwagi konkurenta, oferujac podobna funkcjonalność dostosowana do specyficznych potrzeb deweloperow C#.

IronZIP oferuje bezplatna wersje próbna dla IronZIP. Pobierz i wyprobuj biblioteke IronZIP .NET Core i Framework z strony pobierania IronZIP.

Często Zadawane Pytania

Czym jest 7-ZIP i dlaczego 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

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie