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
- Decomprimi i file negli archivi ZIP in C#
- Decomprimi i file ZIP protetti da password
- Estrai file ZIP crittografati AES in C#
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#:
- Apri l’archivio ZIP in un oggetto FileStream.
- Crea e inizializza l’istanza di Archive con l’oggetto FileStream.
- Accedi ai file nello ZIP utilizzando la raccolta Archive.Entries.
- Impostare il gestore eventi ArchiveEntry.ExtractionProgressed per stampare l’avanzamento dell’estrazione.
- Estrai/decomprimi i file usando il metodo ArchiveEntry.Extract(string).
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#.
- Apri l’archivio ZIP usando la classe FileStream.
- Crea un’istanza della classe Archive e inizializzala con l’oggetto FileStream di ZIP.
- Decomprimi i file usando il metodo Archive.ExtractToDirectory(string).
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.