Decomprimi i file in C#

Nel precedente post, hai imparato diversi modi per comprimere file e cartelle in archivi ZIP usando Aspose.ZIP for .NET. In questo post, ti mostrerò come estrarre o decomprimere i file negli archivi ZIP usando C#. Tratteremo anche come estrarre archivi ZIP protetti da password o crittografati AES in modo programmatico. Questo articolo è suddiviso nelle seguenti sezioni:

API C# per decomprimere i file

Prima di iniziare, assicurati di aver scaricato e di aver fatto riferimento ad Aspose.ZIP per .NET o di aver installato il relativo pacchetto utilizzando NuGet Package Manager nel tuo progetto.

Decomprimi i file ZIP usando C#

Il processo di decompressione dei file ZIP può essere ottenuto in due modi:

  • Decomprimi ogni file in ZIP separatamente
  • Decomprimi i file in una cartella specificata

Nel primo metodo, puoi accedere e decomprimere in modo esplicito ogni file nell’archivio ZIP. Inoltre è possibile stampare lo stato di avanzamento del processo di estrazione. Considerando che il secondo metodo decomprime semplicemente i file nella cartella specificata.

Estrai ogni file in archivio separatamente

Di seguito sono riportati i passaggi per accedere ed estrarre i file e stampare l’avanzamento dell’estrazione in C#:

L’esempio di codice seguente mostra come estrarre i file in un archivio ZIP usando C#.

// Apri il file ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
	{
		// Accedi a ogni voce nell'archivio ZIP
		for (int i = 0; i < archive.Entries.Count; i++)
		{
			int percentReady = 0;
			// Registra l'avanzamento dell'estrazione nella console.
			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;
				}
			};
			// Estrai il contenuto della voce su disco.
			archive.Entries[i].Extract(archive.Entries[i].Name);
		}
	}
}

Estrai file in una cartella

I passaggi seguenti vengono utilizzati per estrarre i file in una cartella specifica in C#.

L’esempio di codice C# seguente decomprime i file in una cartella.

// Apri il file ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (var archive = new Archive(zipFile))
	{
		// Decomprimi i file nella cartella
		archive.ExtractToDirectory("Unzipped Files");
	}
}

Decomprimi i file ZIP protetti da password in C#

Puoi anche decomprimere un archivio ZIP protetto da password usando Aspose.ZIP per .NET. Per questo, devi solo specificare la password usando la classe ArchiveLoadOptions che verrà passata come secondo parametro al costruttore di Archive.

Di seguito è riportato il codice di esempio per decomprimere un file ZIP protetto da password.

// Apri il file ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	// Decrittografare usando la password
	using (var archive = new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
	{
    		// Estrai i file nella cartella
		archive.ExtractToDirectory("Unzipped Files");
	}
}

Estrai file ZIP crittografati AES in C#

Un archivio ZIP può anche essere crittografato con crittografia AES. Aspose.ZIP per .NET supporta la crittografia degli archivi con i metodi di crittografia AES128, AES192 e AES256. La decompressione di un file ZIP crittografato AES è simile alla decompressione di file ZIP protetti da password. Basta specificare la password di decrittazione usando la classe ArchiveLoadOptions e il resto sarà curato dall’API.

L’esempio di codice seguente mostra come decomprimere i file ZIP crittografati AES in C#.

// Apri il file ZIP
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
  	// Decrittografa ed estrai nella cartella
	new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}

Ottieni una licenza API gratuita

Puoi utilizzare Aspose.ZIP per .NET senza limitazioni di valutazione ottenendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come decomprimere i file ZIP usando C#. Inoltre, hai visto come decomprimere i file negli archivi ZIP protetti da password. Gli esempi di codice hanno anche dimostrato come estrarre file in un archivio ZIP crittografato in C#. Puoi esplorare di più su Aspose.ZIP per .NET usando documentazione.

articoli Correlati