Jak rozpakować pliki w .NET Core
1. Wprowadzenie
"Rozpakowanie" oznacza proces wyodrębniania plików i folderów z archiwum ZIP oraz ich dekompresji. "Unzip" refers to the process of recovering compressed files or directories back to their original condition, so that they can be accessed and used again after being compressed into a ZIP file. Do plików ZIP możemy dodawać różne typy plików, takie jak obrazy, pliki TXT itp.
Użytkownicy mogą odzyskać zawartość archiwum ZIP poprzez rozpakowanie, czyli proces odwracający proces kompresji. Popularnym zastosowaniem jest dostęp do poszczególnych plików lub folderów, które zostały spakowane w celu bardziej efektywnego przesyłania, przechowywania lub udostępniania. Po zakończeniu procedury "rozpakowywania" pliki zachowują swoją pierwotną strukturę i mogą być odczytywane, modyfikowane lub wykorzystywane zgodnie z potrzebami użytkownika. W tym artykułe zajmiemy się rozpakowywaniem plików w .NET Core przy użyciu biblioteki IronZIP.
2. W Asp.net Core, podsumowanie rozpakowywania pliku
- Utwórz nowy projekt .NET Core.
- Zainstaluj bibliotekę IronZIP w utworzonym projekcie.
- Aby rozpakować plik, należy utworzyć instancję klasy
IronArchive. - Plik ZIP można rozpakować za pomocą funkcji
ExtractArchiveToDirectory. - Określ plik docelowy, do którego należy rozpakować plik zip.
3. Biblioteka IronZIP
Firma Iron Software stworzyła bibliotekę .NET IronZIP, która ułatwia obsługę i zarządzanie plikami ZIP w aplikacjach .NET. Oferuje programistom narzędzia i funkcje, dzięki którym mogą oni korzystać z ZIP na wiele różnych sposobów. Obejmują one generowanie, wyodrębnianie, kompresowanie, dekompresowanie, szyfrowanie oraz modyfikowanie plików i katalogów wewnątrz plików ZIP.
3.1 Funkcje IronZIP
- Tworzenie plików ZIP: Możliwość tworzenia przez aplikacje .NET zupełnie nowych archiwów ZIP od samego początku.
- Wyodrębnianie i dekompresja: Możliwość usuwania plików i katalogów z istniejących pakietów ZIP oraz rozpakowywania zawartości.
- Kompresja: Zapewnia narzędzia do kompresji plików i folderów do archiwów ZIP w celu zmniejszenia ich rozmiaru na potrzeby transportu lub przechowywania.
- Ochrona hasłem i szyfrowanie: Aby zabezpieczyć zawartość archiwów ZIP, funkcja ta umożliwia zastosowanie ochrony hasłem oraz szyfrowanie plików ZIP.
- Obsługa plików: Umożliwia programistom dodawanie, usuwanie, aktualizowanie lub inną pracę z plikami i katalogami wewnątrz pakietów ZIP.
- Kompatybilność: Stworzone do działania w różnych środowiskach .NET Framework, kompatybilne z wieloma wersjami .NET Framework.
- Optymalizacja wydajności: Ma na celu maksymalizację szybkości, aby programy .NET mogły efektywniej zarządzać dużymi plikami ZIP lub zbiorami danych.
Podczas zarządzania plikami ZIP dla swoich aplikacji programiści mogą uznać IronZIP za przydatne narzędzie. W ramach .NET Framework zapewnia szereg funkcji do programowej obsługi archiwów ZIP, oferując prostotę i wszechstronność.
Najnowsze informacje na temat funkcji, możliwości, kompatybilności oraz wszelkich nowych funkcji zawartych w późniejszych wersjach można znaleźć w oficjalnej dokumentacji, informacjach o wydaniu lub na stronie internetowej IronZIP, ponieważ biblioteki oprogramowania są z czasem aktualizowane i ulepszane. Aby dowiedzieć się więcej, kliknij tutaj.
3.2 Tworzenie nowego projektu w Visual Studio
Po uruchomieniu programu Visual Studio wybierz opcję Plik. Wybierz "nowy projekt", a następnie "Aplikacja internetowa .NET Core".
W odpowiednim polu tekstowym wpisz nazwę projektu i wybierz lokalizację pliku. Następnie kliknij przycisk Utwórz i wybierz odpowiednią wersję .NET Framework.
Struktura wybranej aplikacji zostanie teraz wygenerowana przez projekt Visual Studio. W tym przypadku używany jest ASP.NET MVC. W związku z tym mamy dwie opcje: albo wykorzystać obecny kontroler, który pozwala na dodanie kodu oraz kompilację i uruchomienie aplikacji, albo stworzyć nowy.
Następnie można dodać bibliotekę i przetestować kod.
4. Pobieranie pakietu IronZIP
4.1 Korzystanie z programu Visual Studio
Pakiety można zainstalować bezpośrednio w rozwiązaniu za pomocą funkcji NuGet Package Manager w programie Visual Studio. Możesz skorzystać z poniższego zrzutu ekranu, aby uzyskać dostęp do menedżera pakietów NuGet.

Zawiera pole wyszukiwania, które wyświetla listę pakietów ze strony NuGet. Poniższy zrzut ekranu pokazuje, gdzie szukać frazy "IronZIP" w menedżerze pakietów.

Na powyższym obrazku wyświetlona jest lista odpowiednich terminów wyszukiwania. Aby zainstalować pakiet rozwiązania, należy wybrać odpowiednią opcję.
4.2 Korzystanie z wiersza poleceń programu Visual Studio
W programie Visual Studio wybierz opcję Narzędzia > Menedżer pakietów NuGet, aby wyświetlić konsolę menedżera pakietów.
Wpisz następujący wiersz w zakładce terminala menedżera pakietów:
Install-Package IronZip
Po pobraniu i zainstalowaniu w aktywnym projekcie pakiet jest gotowy do użycia.
4.3 Bezpośrednie pobieranie ze strony NuGet
Korzystając z trzeciego sposobu, można pobrać pakiet NuGet bezpośrednio ze strony internetowej.
Przejdź tam, aby otworzyć link.
Wybierz pakiet do pobrania z menu po prawej stronie.
Po pobraniu pakietu kliknij go dwukrotnie. Program zainstaluje się samoczynnie.
Ponownie załaduj rozwiązanie i zacznij z niego korzystać w projekcie.
4.4 Bezpośrednie pobranie ze strony internetowej IronZIP
Kliknij ten link, aby pobrać najnowszy pakiet bezpośrednio ze strony internetowej. Po pobraniu postępuj zgodnie z dołączoną instrukcją, aby dodać pakiet do projektu.
- Wybierz projekt, klikając prawym przyciskiem myszy w oknie rozwiązania.
- Wybierz plik referencyjny i przejdź do jego lokalizacji po pobraniu.
- Następnie kliknij OK, aby dodać odwołanie.
4.5 Rozpakowywanie plików w .NET Core
Aby użyć IronZIP w języku C# do wyodrębnienia konkretnego pliku z archiwum ZIP, należy podać nazwę pliku oraz lokalizację docelową, do której ma zostać wyodrębniony.
Przykładowy kod tutaj:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using IronZip;
namespace IronPDF_WebApp.Pages
{
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public IActionResult OnPost()
{
try
{
// Retrieve the uploaded file from the form
var file = Request.Form.Files[0];
// Set the file path where the file will be saved
string filepath = @"C:\temp\uploads\";
// Save the uploaded file to the specified filepath
using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
{
file.CopyToAsync(stream);
}
// Extract the ZIP archive to the specified directory
string extractfile = @"C:\temp\extracted";
IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
}
catch (Exception ex)
{
// Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.");
return RedirectToAction("Error");
}
return RedirectToAction("Get");
}
}
}
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using IronZip;
namespace IronPDF_WebApp.Pages
{
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public IActionResult OnPost()
{
try
{
// Retrieve the uploaded file from the form
var file = Request.Form.Files[0];
// Set the file path where the file will be saved
string filepath = @"C:\temp\uploads\";
// Save the uploaded file to the specified filepath
using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
{
file.CopyToAsync(stream);
}
// Extract the ZIP archive to the specified directory
string extractfile = @"C:\temp\extracted";
IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
}
catch (Exception ex)
{
// Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.");
return RedirectToAction("Error");
}
return RedirectToAction("Get");
}
}
}
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports IronZip
Namespace IronPDF_WebApp.Pages
Public Class IndexModel
Inherits PageModel
Private ReadOnly _logger As ILogger(Of IndexModel)
Public Sub New(ByVal logger As ILogger(Of IndexModel))
_logger = logger
End Sub
Public Function OnPost() As IActionResult
Try
' Retrieve the uploaded file from the form
Dim file = Request.Form.Files(0)
' Set the file path where the file will be saved
Dim filepath As String = "C:\temp\uploads\"
' Save the uploaded file to the specified filepath
Using stream = New FileStream(filepath & file.FileName, FileMode.Create)
file.CopyToAsync(stream)
End Using
' Extract the ZIP archive to the specified directory
Dim extractfile As String = "C:\temp\extracted"
IronZipArchive.ExtractArchiveToDirectory(filepath & file.FileName, extractfile)
Catch ex As Exception
' Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.")
Return RedirectToAction("Error")
End Try
Return RedirectToAction("Get")
End Function
End Class
End Namespace
W powyższym kodzie upewnij się, że przestrzeń nazw IronZIP została zaimportowana. W klasie IronZipArchive programu IronZIP znajduje się funkcja ExtractArchiveToDirectory. Pozwala nam to przekazać dwa parametry: system plików źródłowych oraz ścieżkę do pliku rozpakowywanego. ZIPArchive Pliki ZIP mogą zawierać dowolną liczbę elementów, a ich zawartość można wyodrębnić za pomocą tej funkcji i zapisać w katalogu określonym w pliku. Ścieżka katalogu, która służy jako punkt wyodrębniania zawartości pojedynczego pliku ZIP, jest jedynym parametrem wymagańym przez metodę ExtractArchiveToDirectory.
Aby wyodrębnić wszystkie pliki do wyznaczonego katalogu, funkcja ta wewnętrznie przechodzi w pętli przez wszystkie pliki i katalogi znajdujące się w pakiecie ZIP. W przypadku wystąpienia wyjątku, np. gdy brakuje pliku ZIP lub występują problemy z procedurą wyodrębniania, należy postępować ostrożnie. Wyjątki mogą być przechwytywane i obsługiwane przy użyciu bloków try-catch. W przypadku operacji masowego pobierania danych metoda ExtractArchiveToDirectory ułatwia proces, zarządzając pobieraniem wszystkich plików i katalogów znajdujących się w archiwum ZIP. Pliki ZIP można tworzyć za pomocą metody rozszerzenia IronZIP.
Aby dowiedzieć się więcej o bibliotece IronZIP, kliknij tutaj.
5. Podsumowanie
Programiści mogą obsługiwać kompresję, wyodrębnianie i manipulowanie plikami ZIP za pomocą biblioteki IronZIP, zaprojektowanej specjalnie do zarządzania plikami ZIP w aplikacjach C#. Usprawniając skomplikówane procedury i upraszczając operacje na plikach, takie jak wyodrębnianie poszczególnych plików, wyodrębnianie plików zbiorczo, dodawanie wpisów i modyfikowanie istniejących archiwów, IronZIP wykorzystuje intuicyjny interfejs API.
Dzięki tej bibliotece programiści mogą ulepszyć możliwości zarządzania plikami bez konieczności rozpoczynania od zera w projektach C#. Integruje się bez wysiłku. Dzięki swojej wszechstronności zawartość plików ZIP może być dynamicznie modyfikowana poprzez dodawanie, zmianę i usuwanie plików w celu dostosowania do różnych wymagań aplikacji.
W sytuacjach takich jak brakujące lub uszkodzone pliki ZIP, zaawansowane funkcje obsługi wyjątków w IronZIP gwarantują spójny przebieg pracy i ułatwiają naprawę błędów. Chociaż IronZIP od dawna oferuje niezawodne rozwiązanie do zarządzania plikami ZIP w środowisku .NET, należy pamiętać, że moja wiedza może nie odzwierciedlać najnowszych aktualizacji. Ceny IronZIP zaczynają się od $799, a do tego jest dostępna darmowa wersja dla programistów. Aby dowiedzieć się więcej o licencji, zapraszamy tutaj. W przypadku produktu Iron Software sprawdź tutaj.
Często Zadawane Pytania
Jak rozpakować pliki w ASP.NET Core?
Pliki ZIP można rozpakować w ASP.NET Core za pomocą biblioteki IronZIP. Najpierw zainstaluj IronZIP za pomocą menedżera pakietów NuGet w Visual Studio, a następnie użyj klasy IronArchive i metody ExtractArchiveToDirectory, aby wyodrębnić pliki z archiwum ZIP do określonego katalogu.
Jakie są główne funkcje IronZIP do obsługi plików ZIP?
IronZIP oferuje szereg funkcji do obsługi plików ZIP, w tym tworzenie, rozpakowywanie, kompresowanie, szyfrowanie i modyfikowanie plików ZIP. Obsługuje ochronę hasłem i jest zoptymalizowany pod kątem wydajności, a także kompatybilny z różnymi .NET Frameworkami.
Jak zainstalować IronZIP w projekcie C#?
Aby zainstalować IronZIP w projekcie C#, użyj menedżera pakietów NuGet w Visual Studio. Wyszukaj „IronZIP” i zainstaluj go. Alternatywnie możesz użyć konsoli menedżera pakietów, wpisując polecenie Install-Package IronZIP.
Czy IronZIP może służyć do szyfrowania plików ZIP?
Tak, IronZIP może szyfrować pliki ZIP. Zawiera narzędzia do ochrony hasłem i szyfrowania, zapewniające bezpieczeństwo zawartości archiwów ZIP.
Co należy zrobić, jeśli podczas wyodrębniania pliku ZIP w ASP.NET Core pojawią się błędy?
Jeśli podczas rozpakowywania plików ZIP napotkasz błędy, skorzystaj z funkcji obsługi wyjątków w IronZIP. Zastosuj bloki try-catch, aby obsłużyć wyjątki, takie jak brakujące lub uszkodzone pliki ZIP.
Czy dostępna jest bezpłatna wersja IronZIP dla programistów?
Tak, IronZIP oferuje bezpłatną wersję dla programistów, która pozwala zapoznać się z jego funkcjami bez żadnych początkowych kosztów, obok licencji płatnych.
Dlaczego warto używać IronZIP do zarządzania plikami ZIP w projektach ASP.NET Core?
IronZIP upraszcza zarządzanie plikami ZIP w projektach ASP.NET Core, oferując intuicyjny interfejs API do tworzenia, rozpakowywania i modyfikowania archiwów ZIP, zwiększając możliwości zarządzania plikami.
W jaki sposób IronZIP obsługuje wyodrębnianie plików ZIP?
IronZIP obsługuje wyodrębnianie plików ZIP za pomocą metody ExtractArchiveToDirectory, która wyodrębnia wszystkie pliki i katalogi z archiwum ZIP do określonej ścieżki katalogowej, efektywnie zarządzając każdym elementem w pakiecie ZIP.
Jak wygląda proces tworzenia nowego projektu ASP.NET Core do wykorzystania z IronZIP?
Aby utworzyć nowy projekt ASP.NET Core do użytku z IronZIP, należy skonfigurować nowy projekt w Visual Studio, zainstalować IronZIP za pośrednictwem NuGet oraz zaimplementować klasę IronArchive do zarządzania plikami ZIP za pomocą metod takich jak ExtractArchiveToDirectory.




