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
- Instalacja IronZIP w naszym projekcie
- Tworzenie pliku ZIP
- Tworzenie pliku ZIP zabezpieczonego hasłem
- Wyodrębnianie pliku ZIP
- Wyodrębnianie pliku ZIP zabezpieczonego hasłem
- 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:
- 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.
- 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.
- Ś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
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
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
fileArrayi przypisuje jej wynik metodyDirectory.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 nazwiearchivei jest zawinieta w instrukcjeusing, co zapewnia usuniecie archiwum ZIP po zakonczeniu bloku kodu. - Iteruje przez tablice
fileArrayuzywajac petliforeach, i dla kazdego pliku wywoluje metodeAddobiektuarchive, przekazujac nazwe pliku jako parametr. Ta metoda dodaje nowy wpis do archiwum ZIP, o tej samej nazwie i zawartości co plik. - Wywoluje metode
SaveAsobiektuarchive, 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:

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
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

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
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 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
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
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

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.




