Przejdź do treści stopki
UżYCIE IRONZIP

Jak spakować pliki w folderze używając C#

Pliki ZIP to pliki, które zawierają jeden lub więcej skompresowanych plików lub folderów przy użyciu formatu ZIP. Jest to powszechny sposób kompresowania i archiwizowania wielu plików lub folderów do jednego pliku. Mogą one zmniejszać rozmiar danych, oszczędzać miejsce na dysku i ułatwiać przenoszenie plików przez internet. W tym artykule dowiesz się, jak pracować z ZIP plikami w C# używając biblioteki IronZIP. Zobaczysz, jak programowo tworzyć, czytać, wyodrębniać i aktualizować pliki ZIP oraz jak używać różnych funkcji IronZIP, takich jak szyfrowanie, ochrona hasłem i poziomy kompresji. Pod koniec tego artykułu będziesz w stanie z łatwością obsługiwać pliki ZIP w swoich aplikacjach C# za pomocą IronZIP.

Co zawrzemy w tym artykule

  1. Instalacja IronZIP w naszym projekcie
  2. Tworzenie pliku ZIP
  3. Tworzenie pliku ZIP zabezpieczonego hasłem
  4. Wyodrębnianie pliku ZIP
  5. Wyodrębnianie pliku ZIP zabezpieczonego hasłem
  6. Dostęp do istniejącego archiwum ZIP

Czym jest IronZIP?

IronZIP to potężna i wszechstronna biblioteka archiwów ZIP dla C#, która pozwala tworzyć, czytać i wyodrębniać pliki ZIP programowo. It supports various archive formats, such as ZIP, TAR, GZIP, and BZIP2. Obsługuje także ochronę hasłem, szyfrowanie i poziomy kompresji. IronZIP jest kompatybilny z .NET 8, 7, 6, Core, Standard i Framework.

IronZIP może pomóc ci w obsłudze różnych przypadków użycia i korzyści wynikających z pracy z plikami ZIP, takich jak:

  1. Tworzenie systemu kopii zapasowej: Możesz użyć IronZIP do kompresji i szyfrowania ważnych plików i folderów do archiwum ZIP i przechowywania ich w bezpiecznym miejscu. W ten sposób, możesz oszczędzić miejsce na dysku i chronić dane przed nieautoryzowanym dostępem.
  2. Wysyłanie załączników e-mailem: Możesz użyć IronZIP do zmniejszenia rozmiaru załączników e-mail poprzez skompresowanie ich do pliku ZIP. To może pomóc ci uniknąć przekroczenia limitu rozmiaru pliku i przyspieszyć proces przesyłania.
  3. Ściąganie plików z internetu: Możesz użyć IronZIP do ściągania i wyodrębniania plików ZIP z internetu, takich jak pakiety oprogramowania, dokumenty, obrazy i inne rodzaje plików. To może pomóc ci zaoszczędzić przepustowość i czas oraz łatwo uzyskać dostęp do potrzebnych plików.

Pierwsze kroki z IronZIP

Przed napisaniem kodu należy zainstalować pakiet IronZIP NuGet w projekcie C#. IronZIP to popularna biblioteka kompresji dostępna przez NuGet.

Instalacja biblioteki IronZIP

Aby zainstalować IronZIP, możesz użyć Konsoli Menedżera Pakietów NuGet w Visual Studio. Po prostu uruchom następujące polecenie:

Install-Package IronZip

Alternatywnie, możesz pobrać pakiet bezpośrednio z oficjalnej strony IronZIP. Po zainstalowaniu, możesz zacząć, dodając następującą przestrzeń nazw do góry swojego kodu C#.

using IronZip;
using IronZip;
Imports IronZip
$vbLabelText   $csharpLabel

Tworzenie plików ZIP w folderze

Możesz łatwo tworzyć pliki ZIP w folderze używając IronZIP. Następujący kod spakuje wszystkie pliki z określonego katalogu.

using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
Imports System
Imports System.IO
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Get all files from the specified directory
		Dim fileArray() As String = Directory.GetFiles("D:\Docs\")

		' Create a new ZIP archive
		Using archive = New IronZipArchive()
			' Iterate through each file and add it to the archive
			For Each file In fileArray
				archive.Add(file) ' Add files to the ZIP
			Next file
			' Save the archive to a file
			archive.SaveAs("myZipFile.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Powyższy kod C# używa biblioteki IronZIP do kompresji wszystkich plików do pojedynczego pliku ZIP. Kod robi następujące:

  • Deklaruje tablice stringow o nazwie fileArray i przypisuje jej wynik metody Directory.GetFiles, przekazujac sciezke katalogu ("D:\Docs") jako parametr. Ta metoda zwraca tablicę łańcuchów zawierających pełne nazwy wszystkich plików w określonym katalogu.
  • Tworzy nowa instancje klasy IronZipArchive, ktora reprezentuje archiwum ZIP w pamieci. Instancja jest przypisana do zmiennej o nazwie archive i jest zawinieta w instrukcje using, co zapewnia usuniecie archiwum ZIP po zakonczeniu bloku kodu.
  • Iteruje przez tablice fileArray uzywajac petli foreach, i dla kazdego pliku wywoluje metode Add obiektu archive, przekazujac nazwe pliku jako parametr. Ta metoda dodaje nowy wpis do archiwum ZIP, o tej samej nazwie i zawartości co plik.
  • Wywoluje metode SaveAs obiektu archive, przekazujac nazwe pliku ZIP ("myZipFile.zip") jako parametr. Ta metoda zapisuje archiwum ZIP do pliku w obecnym systemie plików.

W ten sposób możesz łatwo tworzyć nowe archiwa ZIP używając tylko kilku linii kodu.

Wynik

Wyjście jest następujące:

Jak spakowac pliki w folderze uzywajac C#: Rysunek 1 - Pliki wyjsciowe z poprzedniego przykladu kodu

Utwórz plik ZIP zabezpieczony hasłem

IronZIP oferuje łatwą metodę tworzenia plików ZIP zabezpieczonych hasłem. Następujący przykład kodu spakuje pliki i utworzy nowy plik ZIP z hasłem.

using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Set Password and Encryption Method
            archive.Encrypt("myPa55word", EncryptionMethods.AES256);
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Set Password and Encryption Method
            archive.Encrypt("myPa55word", EncryptionMethods.AES256);
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
Imports System
Imports System.IO
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Get all files from the specified directory
		Dim fileArray() As String = Directory.GetFiles("D:\Docs\")

		' Create a new ZIP archive
		Using archive = New IronZipArchive()
			' Iterate through each file and add it to the archive
			For Each file In fileArray
				archive.Add(file) ' Add files to the ZIP
			Next file
			' Set Password and Encryption Method
			archive.Encrypt("myPa55word", EncryptionMethods.AES256)
			' Save the archive to a file
			archive.SaveAs("myZipFile.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Linia archive.Encrypt("myPa55word", EncryptionMethods.AES256); ustawia haslo ("myPa55word") dla archiwum ZIP przy uzyciu IronZIP. Zwieksza bezpieczenstwo poprzez zastosowanie szyfrowania AES-256 do archiwum, co zapewnia, ze tylko uzytkownicy z poprawnym haslem moga uzyskac dostep do jego zawartosci. Ta funkcja jest wartościowa dla ochrony danych wrażliwych podczas przechowywania lub transferu w aplikacjach C#. Musisz przekazać określony tryb algorytmu szyfrowania w drugim parametrze.

Plik jest zaszyfrowany, jak pokazano poniżej.

Wynik

Jak spakowac pliki w folderze uzywajac C#: Rysunek 2 - Wyjsciowy zaszyfrowany plik z poprzedniego przykladu kodu

Widzieliśmy demonstrację tworzenia pliku ZIP poprzez przechodzenie przez katalogi z określonej ścieżki. Teraz przejdźmy do przykładu rozpakowywania plików.

Wyodrębnianie plików z archiwum ZIP

IronZIP oferuje metodę wyodrębniania plików z archiwum ZIP w C#. Następujący przykład kodu wyodrębni skompresowany plik w archiwum ZIP.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract all files from the ZIP archive to the specified directory
		IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles")
	End Sub
End Class
$vbLabelText   $csharpLabel

Kod IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles"); uzywa IronZIP do wyodrebnienia wszystkich plikow z "myZipFile.zip" i umieszcza je w katalogu "myExtractedFiles". Ta zwięzła metoda upraszcza proces wyodrębniania archiwów ZIP w C#, dostarczając wygodne rozwiązanie dla zadań związanych z wyodrębnianiem plików.

Wynik

Wyjście jest następujące:

Jak spakowac pliki w folderze uzywajac C#: Rysunek 3 - Pliki wyjsciowe z poprzedniego przykladu kodu

Jak wyodrębnić z pliku ZIP zabezpieczonego hasłem

IronZIP oferuje także metodę wyodrębniania plików ZIP zabezpieczonych hasłem. Następujący kod użyje metody IronZIP do wyodrębnienia wszystkich istniejących plików i katalogów z określonego pliku ZIP.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the password-protected ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the password-protected ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract all files from the password-protected ZIP archive to the specified directory
		IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word")
	End Sub
End Class
$vbLabelText   $csharpLabel

Metoda ExtractArchiveToDirectory klasy IronZipArchive wyodrebnia wszystkie wpisy z archiwum ZIP do okreslonego katalogu. Przekazuje trzy argumenty do metody: ścieżkę do pliku ZIP ('myZipFile.zip'), ścieżkę do katalogu docelowego ('myExtractedFiles') oraz hasło do pliku ZIP ('myPa55word').

W ten sposób łatwo możesz wyodrębnić pliki ZIP zabezpieczone hasłem.

Jak dostąpić do istniejącego archiwum

IronZIP oferuje metody dostępu do istniejącego archiwum i wyświetlenia wszystkich wpisów obecnych w pliku.

using System;
using System.Collections.Generic;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive with a password
        using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
        {
            // Get entries list
            List<string> names = archive.GetArchiveEntryNames();
            // Iterate through each entry name and print it
            foreach (string name in names)
            {
                Console.WriteLine(name);
            }
        }
    }
}
using System;
using System.Collections.Generic;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive with a password
        using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
        {
            // Get entries list
            List<string> names = archive.GetArchiveEntryNames();
            // Iterate through each entry name and print it
            foreach (string name in names)
            {
                Console.WriteLine(name);
            }
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Open an existing ZIP archive with a password
		Using archive = New IronZipArchive("myZipFile.zip", "myPa55word")
			' Get entries list
			Dim names As List(Of String) = archive.GetArchiveEntryNames()
			' Iterate through each entry name and print it
			For Each name As String In names
				Console.WriteLine(name)
			Next name
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Podany kod C# wykorzystuje IronZIP do stworzenia bezpiecznej instancji IronZipArchive przez zaladowanie pliku ZIP o nazwie "myZipFile.zip" z haslem "myPa55word". Nie przekazuj parametru hasła, jeśli plik nie jest zaszyfrowany. Następnie pobiera i wypisuje listę nazw wpisów (nazw plików i folderów) wewnątrz zaszyfrowanego archiwum ZIP.

Metoda GetArchiveEntryNames zbiera nazwy wpisow, a petla foreach wypisuje kazda nazwe na konsole. To pokazuje, jak IronZIP umożliwia bezpieczny dostęp i pobieranie informacji o wpisach z zabezpieczonych hasłem archiwów ZIP w zwięzły sposób.

Wynik

Jak spakowac pliki w folderze uzywajac C#: Rysunek 4 - Wynik z poprzedniego przykladu kodu

Wnioski

Podsumowując, IronZIP okazuje się być solidną i wszechstronną biblioteką C# do pracy z plikami ZIP. Jego możliwości wykraczają poza podstawowe kompresowanie i wyodrębnianie, oferując funkcje takie jak ochrona hasłem, szyfrowanie i kompatybilność z różnymi formatami archiwów. Niezależnie od tego, czy tworzysz systemy kopii zapasowych, zarządzasz załącznikami e-mail czy ściągasz pliki z internetu, IronZIP upraszcza te zadania z prostotą i efektywnością.

Implementując IronZIP w swoich aplikacjach C#, zyskujesz potężne narzędzie do obslugi plików ZIP, zwiększając bezpieczeństwo danych i optymalizując procesy transferu plików. Możesz skorzystać z darmowego okresu próbnego według potrzeb.

Często Zadawane Pytania

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

Możesz użyć IronZIP do utworzenia pliku ZIP z folderu, przeglądając pliki w katalogu i dodając je do nowego archiwum ZIP. Użyj klasy IronZipArchive i wywołaj metodę SaveAs, aby zapisać plik ZIP.

Jak zainstalować IronZIP w projekcie C#?

Zainstaluj IronZIP w swoim projekcie C#, korzystając z menedżera pakietów NuGet w Visual Studio. Uruchom polecenie Install-Package IronZIP w konsoli menedżera pakietów lub pobierz go z oficjalnej strony IronZIP.

Jakie formaty obsługuje IronZIP w zakresie obsługi plików ZIP?

IronZIP obsługuje różne formaty archiwów, w tym ZIP, TAR, GZIP i BZIP2, oferując elastyczność dostosowaną do różnych potrzeb w zakresie kompresji i archiwizacji.

Czy mogę szyfrować pliki ZIP utworzone w języku C#?

Tak, można szyfrować pliki ZIP za pomocą IronZIP, stosując metodę Encrypt z szyfrowaniem AES-256 w celu zabezpieczenia danych w archiwum.

Jak wyodrębnić pliki z pliku ZIP w języku C#?

Aby wyodrębnić pliki z archiwum ZIP za pomocą IronZIP, należy użyć metody ExtractArchiveToDirectory, określając źródłowy plik ZIP i katalog docelowy.

Czy w języku C# można obsługiwać pliki ZIP chronione hasłem?

Tak, za pomocą IronZIP można obsługiwać pliki ZIP chronione hasłem, podając hasło podczas korzystania z metod takich jak ExtractArchiveToDirectory, aby uzyskać bezpieczny dostęp do zawartości.

Jakie są zalety korzystania z IronZIP do zarządzania plikami ZIP?

IronZIP upraszcza zadania takie jak tworzenie kopii zapasowych plików, zarządzanie załącznikami e-mailowymi i pobieranie plików z sieci, oferując funkcje takie jak szyfrowanie, ochrona hasłem oraz obsługa wielu formatów archiwów.

Czy IronZIP obsługuje .NET 8 i inne wersje?

IronZIP jest kompatybilny z .NET 8, 7, 6, Core, Standard i Framework, co zapewnia elastyczność integracji z różnymi projektami C#.

W jaki sposób programiści mogą uzyskać dostęp do wersji próbnej IronZIP?

Programiści mogą uzyskać dostęp do bezpłatnej wersji próbnej IronZIP, odwiedzając sekcję licencji lub pobierania na stronie internetowej IronZIP, aby ocenić jego funkcje.

Jakie są zalety korzystania z plików ZIP do przesyłania danych?

Pliki ZIP są przydatne do przesyłania danych, ponieważ zmniejszają rozmiar plików, oszczędzają miejsce na dysku i ułatwiają wydajne wysyłanie wielu plików przez Internet.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespół wsparcia Iron

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