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.

Extrahera ZIP-filer i C#

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#.

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:

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#.

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.

Se även