
Jak rozpakować pliki w .NET Core
1. Wprowadzenie
"Rozpakowanie" oznacza proces wyodrębniania plików i folderów z archiwum ZIP oraz ich dekompresji. "Rozpakowanie" odnosi się do procesu przywracania skompresowanych plików lub katalogów do ich pierwotnego stanu, tak aby można było uzyskać do nich dostęp i ponownie z nich korzystać po skompresowaniu do pliku ZIP. 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 zainicjować klasę
IronArchive. - Plik ZIP można rozpakować przy użyciu 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:
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");
}
}
}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 NamespaceW powyższym kodzie upewnij się, że przestrzeń nazw IronZIP została zaimportowana. Dołączona do klasy IronZipArchive w IronZIP jest 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ę zawartości, a zawartość można wyodrębnić i zapisać do określonego katalogu. Ścieżka katalogu, która służy jako punkt wyodrębnienia zawartości pojedynczego pliku ZIP, jest jedynym parametrem wymaganym 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. Do masowych działań wyodrębniania metoda ExtractArchiveToDirectory ułatwia wyodrębnienie, zarządzając wyodrębnianiem wszystkich plików i katalogów 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 skomplikowane 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 $999 i obejmują darmową wersję dla deweloperów. Aby dowiedzieć się więcej o licencji, zapraszamy tutaj. Aby sprawdzic produkt Iron Software, kliknij tutaj.

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


