Dans le post précédent, vous avez appris différentes manières de compresser des fichiers et des dossiers dans des archives ZIP à l’aide de Aspose.ZIP for .NET. Dans cet article, je vais vous montrer comment extraire ou décompresser des fichiers dans des archives ZIP à l’aide de C#. Nous verrons également comment extraire par programme des archives ZIP protégées par mot de passe ou cryptées AES. Cet article est divisé en les sections suivantes :
- API C# pour décompresser les fichiers
- Décompressez les fichiers dans les archives ZIP en C#
- Décompressez les fichiers ZIP protégés par mot de passe
- Extraire des fichiers ZIP chiffrés AES en C#
API C# pour décompresser les fichiers
Avant de commencer, assurez-vous d’avoir téléchargé et référencé Aspose.ZIP for .NET ou installé son package à l’aide de NuGet Package Manager dans votre projet.
Décompressez les fichiers ZIP à l’aide de C#
Le processus de décompression des fichiers ZIP peut être réalisé de deux manières :
- Décompressez chaque fichier en ZIP séparément
- Décompressez les fichiers dans un dossier spécifié
Dans la première méthode, vous pouvez explicitement accéder et décompresser chaque fichier dans l’archive ZIP. De plus, vous pouvez imprimer la progression du processus d’extraction. Alors que la deuxième méthode décompresse simplement les fichiers dans le dossier spécifié.
Extrayez chaque fichier dans l’archive séparément
Voici les étapes pour accéder et extraire les fichiers et imprimer la progression de l’extraction en C# :
- Ouvrez l’archive ZIP dans un objet FileStream.
- Créez et initialisez l’instance de Archive avec l’objet FileStream.
- Accédez aux fichiers dans le ZIP à l’aide de la collection Archive.Entries.
- Définissez le gestionnaire d’événements ArchiveEntry.ExtractionProgressed pour imprimer la progression de l’extraction.
- Extrayez/décompressez les fichiers à l’aide de la méthode ArchiveEntry.Extract(string).
L’exemple de code suivant montre comment extraire des fichiers dans une archive ZIP à l’aide de C#.
// Ouvrir le fichier ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
{
// Accéder à chaque entrée dans l'archive ZIP
for (int i = 0; i < archive.Entries.Count; i++)
{
int percentReady = 0;
// Enregistrez la progression de l'extraction dans la 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;
}
};
// Extrayez le contenu de l'entrée sur le disque.
archive.Entries[i].Extract(archive.Entries[i].Name);
}
}
}
Extraire des fichiers dans un dossier
Les étapes suivantes sont utilisées pour extraire des fichiers dans un dossier spécifique en C#.
- Ouvrez l’archive ZIP à l’aide de la classe FileStream.
- Créez une instance de la classe Archive et initialisez-la avec l’objet FileStream de ZIP.
- Décompressez les fichiers à l’aide de la méthode Archive.ExtractToDirectory(string).
L’exemple de code C# suivant décompresse les fichiers dans un dossier.
// Ouvrir le fichier ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
using (var archive = new Archive(zipFile))
{
// Décompressez les fichiers dans le dossier
archive.ExtractToDirectory("Unzipped Files");
}
}
Décompressez les fichiers ZIP protégés par mot de passe en C#
Vous pouvez également décompresser une archive ZIP protégée par mot de passe en utilisant Aspose.ZIP for .NET. Pour cela, il suffit de spécifier le mot de passe à l’aide de la classe ArchiveLoadOptions qui sera passée en second paramètre au constructeur de l’Archive.
Voici un exemple de code pour décompresser un fichier ZIP protégé par mot de passe.
// Ouvrir le fichier ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
// Déchiffrer à l'aide d'un mot de passe
using (var archive = new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
// Extraire les fichiers dans le dossier
archive.ExtractToDirectory("Unzipped Files");
}
}
Extraire des fichiers ZIP chiffrés AES en C#
Une archive ZIP peut également être cryptée avec le cryptage AES. Aspose.ZIP for .NET prend en charge le cryptage des archives avec les méthodes de cryptage AES128, AES192 et AES256. La décompression d’un fichier ZIP crypté AES est similaire à la décompression de fichiers ZIP protégés par mot de passe. Spécifiez simplement le mot de passe de déchiffrement à l’aide de la classe ArchiveLoadOptions et le reste sera pris en charge par l’API.
L’exemple de code suivant montre comment décompresser des fichiers ZIP chiffrés AES en C#.
// Ouvrir le fichier ZIP
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
// Décrypter et extraire dans un dossier
new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}
Obtenez une licence API gratuite
Vous pouvez utiliser Aspose.ZIP for .NET sans limitation d’évaluation en obtenant une licence temporaire gratuite.
Conclusion
Dans cet article, vous avez appris à décompresser des fichiers ZIP à l’aide de C#. De plus, vous avez vu comment décompresser des fichiers dans des archives ZIP protégées par mot de passe. Les exemples de code ont également montré comment extraire des fichiers dans une archive ZIP chiffrée en C#. Vous pouvez en savoir plus sur Aspose.ZIP for .NET en utilisant documentation.