Om du letar efter ett sätt att extrahera ZIP-arkiv programmatiskt kommer den här artikeln att ge dig den enklaste lösningen. Det kommer att visa hur man extraherar ZIP-arkiv med C# i några enkla steg.
I föregående artikel har du lärt dig olika sätt att skapa ZIP-filer och mappar med hjälp av Aspose.ZIP for .NET. Den här artikeln kommer att täcka hur man extraherar ZIP-filer och packar upp lösenordsskyddade eller AES-krypterade ZIP-arkiv i C#.
- C# API för att packa upp filer - gratis nedladdning
- Packa upp ZIP-filer i C#
- Packa upp lösenordsskyddade ZIP-filer
- Extrahera AES-krypterade ZIP-filer i C#
Extrahera ZIP-arkiv i C# - API-installation
Innan vi börjar, se till att du har laddat ner och refererat till Aspose.ZIP för .NET eller installerat dess paket med NuGet Package Manager i ditt projekt.
PM> NuGet\Install-Package Aspose.Zip
Hur man extraherar ZIP-filer i C#
Processen att extrahera ZIP-filer kan uppnås på två sätt:
- Extrahera varje fil i ZIP separat
- Extrahera filer till en angiven mapp
I den första metoden kan du explicit komma åt och extrahera varje fil i ZIP-arkivet. Dessutom kan du skriva ut förloppet för extraktionsprocessen. Medan den andra metoden helt enkelt extraherar filerna till den angivna mappen.
C# Extrahera varje fil i ZIP
Följande är stegen för att komma åt och extrahera en ZIP-fil i C# och skriva ut extraheringsförloppet:
- Öppna ZIP-arkivet till ett FileStream-objekt.
- Skapa och initiera Arkivs instans med FileStream-objektet.
- Få åtkomst till filer i ZIP med Archive.Entries-samlingen.
- Ställ in händelsehanteraren ArchiveEntry.ExtractionProgressed för att skriva ut extraheringsförloppet.
- Extrahera filer med metoden ArchiveEntry.Extract(string).
Följande kodexempel visar hur man extraherar filer i ett ZIP-arkiv i C#.
// Öppna ZIP-fil
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
{
// Få åtkomst till varje post i ZIP-arkivet
for (int i = 0; i < archive.Entries.Count; i++)
{
int percentReady = 0;
// Logga utvinningsförloppet till konsolen.
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;
}
};
// Extrahera postens innehåll till disk.
archive.Entries[i].Extract(archive.Entries[i].Name);
}
}
}
Packa upp ZIP-filer till en mapp i C#
Följande steg används för att packa upp ZIP-filer till en specifik mapp i C#.
- Öppna ZIP-arkivet med klassen FileStream.
- Skapa en instans av klassen Arkiv och initiera den med ZIP:s FileStream-objekt.
- Packa upp filer med metoden Archive.ExtractToDirectory(string).
Följande C#-kodexempel packar upp ZIP-filer till en mapp.
// Öppna ZIP-fil
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
using (var archive = new Archive(zipFile))
{
// Packa upp filer till mapp
archive.ExtractToDirectory("Unzipped Files");
}
}
C# Packa upp lösenordsskyddade ZIP-filer
Du kan också packa upp ett lösenordsskyddat ZIP-arkiv med Aspose.ZIP för .NET. För detta behöver du bara ange lösenordet med klassen ArchiveLoadOptions som kommer att skickas som en andra parameter till arkivets konstruktor.
Följande är exempelkoden för att packa upp en lösenordsskyddad ZIP-fil.
// Öppna ZIP-fil
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
// Dekryptera med lösenord
using (var archive = new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
// Extrahera filer till mapp
archive.ExtractToDirectory("Unzipped Files");
}
}
Extrahera AES-krypterade ZIP-filer i C#
Ett ZIP-arkiv kan också krypteras med AES-kryptering. Aspose.ZIP för .NET stöder kryptering av arkiv med AES128, AES192 och AES256 krypteringsmetoder. Att packa upp en AES-krypterad ZIP-fil liknar att packa upp lösenordsskyddade ZIP-filer. Ange bara dekrypteringslösenordet med klassen ArchiveLoadOptions och resten kommer att tas om hand av API:et.
Följande kodexempel visar hur man extraherar AES-krypterade ZIP-filer i C#.
// Öppna ZIP-fil
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
// Dekryptera och extrahera till mapp
new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}
C# ZIP Extraction API - Skaffa en gratis licens
Du kan extrahera ZIP-arkiv utan utvärderingsbegränsningar genom att skaffa en gratis tillfällig licens.
Slutsats
I den här artikeln har du lärt dig hur du packar upp ZIP-filer med C#. Dessutom har du sett hur man extraherar lösenordsskyddade ZIP-arkiv i C#. Kodproverna har också visat hur man extraherar filer i ett krypterat ZIP-arkiv i C#. Du kan utforska mer om Aspose.ZIP för .NET med dokumentation.