
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:
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;Imports IronZipTworzenie 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");
}
}
}Imports System
Imports System.IO
Imports IronZip
Module Program
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 As New IronZipArchive()
' Iterate through each file and add it to the archive
For Each file As String In fileArray
archive.Add(file) ' Add files to the ZIP
Next
' Save the archive to a file
archive.SaveAs("myZipFile.zip")
End Using
End Sub
End ModulePowyż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");
}
}
}Imports System
Imports System.IO
Imports IronZip
Module Program
Sub Main(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 As 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
' 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 ModuleLinia 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");
}
}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 ClassKod 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");
}
}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 ClassMetoda 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);
}
}
}
}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 ClassPodany 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.

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ęczników.
Powiązane artykuły


