Przejdź do treści stopki
PORóWNAJ Z INNYMI KOMPONENTAMI

Samouczek Archiwum ZIP dla deweloperów C# używających IronXL

Wprowadzenie do ZipArchive

Kiedy myślisz o wysłaniu pliku w skompresowanym formacie, pierwszą rzeczą, która przychodzi na myśl, jest zazwyczaj archiwum ZIP. Archiwum ZIP to popularny format służący do kompresji i pakowania pojedynczego pliku lub całej kolekcji w jednym archiwum. Jednak w przypadku dużych ilości plików do skompresowania praca z nimi może stać się frustrująca, ponieważ trzeba by je archiwizować i formatować jeden po drugim. Ale nie musi tak być. Zadania o dużej objętości wymagają automatyzacji w celu wykonania programowego. Aby osiągnąć to wszystko i jeszcze więcej, możemy skorzystać z biblioteki IronZIP, prostej, a jednocześnie intuicyjnej.

W tym artykułe omówimy pokrótce podstawowe cechy i funkcje IronZIP oraz to, jak może on pomóc w lepszej automatyzacji przepływu pracy, zwiększeniu wydajności i wyeliminowaniu podatnych na błędy zadań wykonywanych ręcznie.

Tworzenie nowego pliku ZIP z folderu lub plików

Poniżej znajduje się przykład, który pobiera wiele plików, kompresuje je do jednego archiwum ZIP i eksportuje po zakończeniu operacji. Wszystkie przykłady w tym artykułe są ujęte w metodę static void Main(), aby uniknąć powtarzających się bloków kodu.

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. Najpierw importujemy IronZIP.
  2. Następnie, korzystając z IronZIP, tworzymy archiwum.
  3. Wywołujemy archive.Add(), aby dodać wiele plików do archiwum. Należy pamiętać, że nazwy ścieżek muszą być ścieżkami bezwzględnymi, w przeciwnym razie operacja nie znajdzie odpowiednich plików.
  4. Na koniec wywołujemy archive.SaveAs(), aby wyeksportować archiwum ZIP jako output.zip.

Aktualizacja istniejącego pliku ZIP o nowe pliki lub modyfikacje

Przejdźmy do kolejnego przykładu; Tym razem edytujemy istniejący plik ZIP, dodając do niego nowe pliki, aby zaprezentować funkcjonalność IronZIP.

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. Najpierw importujemy IronZIP.
  2. Za pomocą IronZIP tworzymy archiwum, ale tym razem importujemy istniejący plik ZIP za pomocą IronZipArchive.FromFile().
  3. Wywołujemy archive.Add(), aby dodać żądane pliki do archiwum. Należy pamiętać, że nazwy ścieżek muszą być ścieżkami bezwzględnymi, w przeciwnym razie operacja nie znajdzie istniejących plików.
  4. Na koniec wywołujemy archive.SaveAs(), aby wyeksportować zaktualizowany plik ZIP jako result.zip.

Jak widać na powyższym kodzie, działanie i format są podobne do tych używanych do tworzenia i dodawania plików do pliku ZIP. Główna różnica polega na tym, że zamiast tego importujemy plik ZIP, co pokazuje prostą, ale intuicyjną funkcjonalność IronZIP.

Wyodrębnianie plików z archiwum ZIP

Możemy również użyć IronZIP do wyodrębniania plików z archiwum ZIP lub pakietu ZIP. Przyjrzyjmy się temu na innym przykładzie.

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

Importujemy IronZIP i wywołujemy IronZipArchive.ExtractArchiveToDirectory(). Ta metoda wyodrębnia zawartość istniejącego archiwum ZIP do określonego katalogu docelowego.

Ponadto w przypadkach, gdy trzeba mieć do czynienia z archiwami ZIP chronionymi hasłem, możemy użyć innej metody do wyodrębnienia zawartości archiwów.

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

Na koniec przekazujemy kolejny parametr: hasło do chronionego archiwum ZIP. Pozostała część operacji przebiega tak samo, jak pokazano powyżej.

Zaawansowane tematy i najlepsze praktyki

Omówione powyżej przykłady kodu dotyczące dodawania, wyodrębniania i tworzenia archiwów są najczęściej spotykane w przypadku archiwów ZIP. Jednak w przypadku bardziej zaawansowanych zastosowań, takich jak wyodrębnianie innych formatów lub po prostu przeglądanie zawartości archiwum, IronZIP spełni Twoje oczekiwania i nie tylko.

Zaawansowane funkcje IronZIP

  • Kompatybilność między platformami: IronZIP jest kompatybilny z szeroką gamą wersji .NET, w tym .NET Core (3.1+), .NET Standard (2.0+) oraz .NET Framework (4.6.2+). Biblioteka działa również w środowisku internetowym (Blazor), mobilnym (MAUI), stacjonarnym (WPF) oraz konsolowym. Dzięki temu programiści mogą przekroczyć ograniczenia związane z platformą i wersją.

  • Tworzenie archiwów: Oprócz formatu ZIP, IronZIP obsługuje tworzenie archiwów TAR, GZIP i BZIP2.

  • Rozpakowywanie archiwów: Łatwo rozpakowuj archiwa i dekompresuj pliki za pomocą IronZIP, używając jednego bloku kodu, jak pokazano powyżej.

  • Dodawanie plików i systemów plików: IronZIP ułatwia obsługę archiwów ZIP poprzez dodawanie obrazów, plików tekstowych i dokumentów (takich jak PDF, DOCX i XLSX), a także plików audio, takich jak MP3 i WAV. Może nawet kompresować całe systemy plików lub pojedyncze pliki tekstowe do archiwum ZIP.

  • Eksportuj i twórz: Możesz zabezpieczyć archiwa hasłem przy użyciu standardów AES128 i AES256. Dodatkowo można generować i eksportować formaty takie jak TAR, GZIP i BZIP2.

  • Niestandardowe poziomy kompresji: IronZIP pozwala programistom dostosować ustawienia kompresji, aby precyzyjnie dostosować algorytm do ich potrzeb.

  • Edycja archiwów: Łatwe dodawanie, wyodrębnianie lub usuwanie wpisów plików w archiwum przy użyciu IronZIP jako kompleksowego rozwiązania do operacji związanych z edycją.

  • Właściwości wpisów plików: IronZIP umożliwia ustawianie opcjonalnych komentarzy do archiwum oraz pobieranie nazw plików z archiwum bez ich wyodrębniania, co ułatwia dodawanie konkretnych komentarzy do każdego pliku.

  • Opcje licencyjne: IronZIP oferuje elastyczne opcje licencyjne, w tym bezpłatne wersje próbne, co pozwala programistom wybrać rozwiązanie najlepiej odpowiadające ich wymaganiom.

Wnioski

Obsługa plików skompresowanych i archiwów to codzienne zadanie, z którym często mają do czynienia programiści, ale zarządzanie dużą ich ilością może być stresujące i podatne na błędy ludzkie. Chociaż istnieją opcje takie jak System.IO.Compression, użycie IronZIP pozwala osiągnąć więcej i szybko rozwiązać problemy związane z archiwami skompresowanymi. W tym artykułe omówiliśmy zaawansowane funkcje IronZIP oraz typowe operacje, takie jak tworzenie archiwów ZIP, usuwanie wpisów lub dodawanie plików. Zrozumienie, jak wykonywać te zadania programowo za pomocą IronZIP, prowadzi do zwiększenia wydajności, skalowalności i automatyzacji obsługi archiwów.

Zwróć uwagęSystem.IO.Compression jest zastrzeżonym znakiem towarowym odpowiedniego właściciela. Ta strona nie jest powiązana z System.IO.Compression, nie jest przez nią promowana ani sponsorowana. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.

Często Zadawane Pytania

Jak utworzyć plik ZIP z folderu w języku C#?

Aby utworzyć plik ZIP z folderu w języku C#, można użyć biblioteki IronZIP. Najpierw należy zaimportować bibliotekę IronZIP, utworzyć instancję IronZipArchive, dodać folder za pomocą metody archive.AddFolder() i zapisać go za pomocą metody archive.SaveAs().

Jak wygląda proces wyodrębniania danych z archiwum ZIP w języku C#?

Możesz wyodrębnić dane z archiwum ZIP w języku C# za pomocą IronZIP, wywołując metodę IronZipArchive.ExtractArchiveToDirectory(). Metoda ta pozwala określić katalog, do którego zostanie wyodrębniona zawartość.

Jak mogę programowo zaktualizować zawartość archiwum ZIP w języku C#?

Aby programowo zaktualizować zawartość archiwum ZIP w języku C#, należy użyć biblioteki IronZIP, ładując istniejące archiwum za pomocą metody IronZIPArchive.FromFile(), a następnie użyć metody archive.Add() do dodania plików lub archive.Remove() do usunięcia plików przed zapisaniem zmian za pomocą metody archive.SaveAs().

Czy IronZIP obsługuje pliki ZIP chronione hasłem?

Tak, IronZIP obsługuje pliki ZIP chronione hasłem. Hasło można podać podczas wyodrębniania plików za pomocą metody IronZIPArchive.ExtractArchiveToDirectory(), podając je jako dodatkowy parametr.

Jakie są zalety korzystania z IronZIP zamiast System.IO.Compression do obsługi plików ZIP?

IronZIP oferuje zaawansowane funkcje w porównaniu z System.IO.Compression, takie jak obsługa wielu formatów archiwów, ochrona hasłem, niestandardowe poziomy kompresji oraz możliwość edycji archiwów poprzez dodawanie lub usuwanie plików bez konieczności ich rozpakowywania.

W jaki sposób IronZIP zapewnia kompatybilność z różnymi wersjami .NET?

IronZIP zapewnia kompatybilność między platformami dzięki obsłudze wielu wersji .NET, umożliwiając programistom integrację funkcji obsługi plików ZIP z aplikacjami działającymi na różnych platformach i frameworkach.

Jakie zaawansowane funkcje oferuje IronZIP do obsługi archiwów ZIP?

IronZIP oferuje zaawansowane funkcje, takie jak tworzenie i rozpakowywanie wielu formatów archiwów (ZIP, TAR, GZIP, BZIP2), ochronę hasłem, niestandardowe poziomy kompresji oraz kompleksowe możliwości edycji bez konieczności rozpakowywania plików.

Czy za pomocą IronZIP można zarządzać właściwościami plików w archiwum ZIP?

Tak, IronZIP pozwala zarządzać właściwościami plików, takimi jak komentarze, w archiwum ZIP bez konieczności ich wcześniejszego rozpakowywania, co zwiększa elastyczność i wydajność zarządzania archiwami.

Jak mogę zautomatyzować tworzenie i rozpakowywanie plików ZIP w języku C#?

Możesz zautomatyzować tworzenie i rozpakowywanie plików ZIP w języku C#, używając biblioteki IronZIP w metodzie static void Main(). Pozwala to na automatyzację procesów, takich jak dodawanie plików do archiwum, wyodrębnianie danych oraz programowe aktualizowanie istniejących archiwów.

Czy IronZIP obsługuje całe systemy plików?

Tak, IronZIP obsługuje kompresję i rozpakowywanie całych systemów plików, dzięki czemu nadaje się do wydajnej obsługi dużych ilości danych.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej

Zespol wsparcia Iron

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