W poprzednim post nauczyłeś się różnych sposobów spakowania plików i folderów do archiwów ZIP przy użyciu Aspose.ZIP for .NET. W tym poście pokażę ci, jak wyodrębnić lub rozpakować pliki ZIP w C#. Omówimy również, jak rozpakować archiwa ZIP chronione hasłem lub szyfrowane AES w języku C#. Ten artykuł jest podzielony na następujące sekcje:
- Interfejs API języka C# do rozpakowywania plików — bezpłatne pobieranie
- Rozpakuj pliki ZIP w C#
- Rozpakuj pliki ZIP chronione hasłem
- Wyodrębnij zaszyfrowane pliki ZIP AES w C#
Interfejs API języka C# do rozpakowywania plików ZIP — bezpłatne pobieranie
Zanim zaczniemy, upewnij się, że pobrałeś i odwołujesz się do Aspose.ZIP for .NET lub zainstalowałeś jego pakiet za pomocą NuGet Package Manager w swoim projekcie.
Rozpakuj pliki ZIP w C# .NET
Proces rozpakowywania plików ZIP można przeprowadzić na dwa sposoby:
- Rozpakuj każdy plik w ZIP oddzielnie
- Rozpakuj pliki do określonego folderu
W pierwszej metodzie możesz jawnie uzyskać dostęp i rozpakować każdy plik w archiwum ZIP. Ponadto możesz wydrukować postęp procesu ekstrakcji. Podczas gdy druga metoda po prostu rozpakowuje pliki do określonego folderu.
Wyodrębnij każdy plik w ZIP w C#
Poniżej przedstawiono kroki, aby uzyskać dostęp do plików i wyodrębnić je oraz wydrukować postęp wyodrębniania w języku C#:
- Otwórz archiwum ZIP w obiekcie FileStream.
- Utwórz i zainicjuj instancję Archive za pomocą obiektu FileStream.
- Uzyskaj dostęp do plików w ZIP przy użyciu kolekcji Archive.Entries.
- Ustaw procedurę obsługi zdarzeń ArchiveEntry.ExtractionProgressed, aby wydrukować postęp wyodrębniania.
- Wyodrębnij/rozpakuj pliki przy użyciu metody ArchiveEntry.Extract(string).
Poniższy przykładowy kod pokazuje, jak wyodrębnić pliki w archiwum ZIP przy użyciu języka C#.
// Otwórz plik ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
{
// Uzyskaj dostęp do każdego wpisu w archiwum ZIP
for (int i = 0; i < archive.Entries.Count; i++)
{
int percentReady = 0;
// Rejestruj postęp wyodrębniania do konsoli.
archive.Entries[i].ExtractionProgressed += (s, e) =>
{
int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize);
if (percent > percentReady)
{
Console.WriteLine(string.Format("{0}% decompressed", percent));
percentReady = percent;
}
};
// Wypakuj zawartość wpisu na dysk.
archive.Entries[i].Extract(archive.Entries[i].Name);
}
}
}
C# Rozpakuj pliki ZIP do folderu
Poniższe kroki służą do rozpakowywania plików ZIP do określonego folderu w języku C#.
- Otwórz archiwum ZIP, używając klasy FileStream.
- Utwórz instancję klasy Archive i zainicjuj ją obiektem FileStream ZIP.
- Rozpakuj pliki przy użyciu metody Archive.ExtractToDirectory(string).
Poniższy przykładowy kod C# rozpakowuje pliki ZIP do folderu.
// Otwórz plik ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
using (var archive = new Archive(zipFile))
{
// Rozpakuj pliki do folderu
archive.ExtractToDirectory("Unzipped Files");
}
}
C# Wypakuj pliki ZIP chronione hasłem
Możesz także rozpakować archiwum ZIP chronione hasłem za pomocą Aspose.ZIP for .NET. W tym celu wystarczy podać hasło za pomocą klasy ArchiveLoadOptions, które zostanie przekazane jako drugi parametr do konstruktora Archive.
Poniżej znajduje się przykładowy kod do rozpakowania pliku ZIP chronionego hasłem.
// Otwórz plik ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
// Odszyfruj za pomocą hasła
using (var archive = new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
// Wypakuj pliki do folderu
archive.ExtractToDirectory("Unzipped Files");
}
}
C# Wyodrębnij zaszyfrowane pliki ZIP AES
Archiwum ZIP można również zaszyfrować za pomocą szyfrowania AES. Aspose.ZIP for .NET obsługuje szyfrowanie archiwów metodami szyfrowania AES128, AES192 i AES256. Rozpakowywanie pliku ZIP zaszyfrowanego algorytmem AES jest podobne do rozpakowywania plików ZIP chronionych hasłem. Wystarczy podać hasło odszyfrowywania za pomocą klasy ArchiveLoadOptions, a resztą zajmie się API.
Poniższy przykładowy kod pokazuje, jak rozpakować pliki ZIP zaszyfrowane AES w języku C#.
// Otwórz plik ZIP
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
// Odszyfruj i rozpakuj do folderu
new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}
Biblioteka C# Unzip — uzyskaj bezpłatną licencję API
Możesz używać Aspose.ZIP for .NET bez ograniczeń ewaluacyjnych, otrzymując bezpłatną licencję tymczasową.
Wniosek
W tym artykule nauczyłeś się rozpakowywać pliki ZIP przy użyciu języka C#. Ponadto widziałeś, jak rozpakować pliki w archiwach ZIP chronionych hasłem w języku C# .NET. Przykłady kodu pokazały również, jak wyodrębnić pliki w zaszyfrowanym archiwum ZIP w języku C#. Możesz dowiedzieć się więcej o Aspose.ZIP for .NET, korzystając z dokumentacji.