Comment extraire le contenu d’un fichier zip dans un dossier de .NET 4.5

La réponse à la question suivante semble expliquer comment extraire des fichiers à l’aide de l’appel de méthode System.IO.Commpression.ZipFile.ExtractToDirectory. “ZipFile” ne semble pas exister dans .NET 4.5, lors de l’ajout d’une référence à System.IO.Compression. Comment puis-je extraire des fichiers d’un fichier * .zip dans .NET 4.5?

Comment décompresser tous les fichiers .Zip d’un dossier en utilisant C # 4.0 sans utiliser de DLL OpenSource?

Cela semble montrer comment compresser des fichiers. Mais je cherche l’inverse.

Compression de fichiers dans .NET 4.5

Même cette question fait référence à “ZipFile” dans le code source. Mais je n’arrive pas à trouver cette classe.

Comment extraire uniquement le répertoire spécifique d’une archive zip dans C # .NET 4.5?

entrez la description de l'image ici

MODIFIER:

Remarquez comment 7z.exe (du paquet 7zip) n’a pas fonctionné. Il doit y avoir un conflit avec .NET et 7zip. ZipFile semble maintenant fonctionner correctement.

private void extract_Click(object sender, EventArgs e) { ssortingng exePath = System.Reflection.Assembly.GetExecutingAssembly().Location; exePath = @"C:\test"; // path during troubleshooting ////var cmd1 = "cd \"" + exePath + "\""; ////ExecuteCommand(cmd1, 100, exePath); //var cmd2 = "\"" + exePath + "\\7z.exe\" x \"" + exePath + "\\source.zip\""; //ExecuteCommand(cmd2, 100, exePath); ssortingng zipPath = exePath + "\\source.zip"; ssortingng extractPath = exePath; // needed explicit reference to System.IO.Compression.FileSystem ZipFile.ExtractToDirectory(zipPath, extractPath); } private static int ExecuteCommand(ssortingng command, int timeout, ssortingng dir) { var processInfo = new ProcessStartInfo("cmd.exe", " /C " + command) { CreateNoWindow = true, UseShellExecute = false, WorkingDirectory = dir, }; var process = Process.Start(processInfo); process.WaitForExit(timeout); var exitCode = process.ExitCode; process.Close(); return exitCode; } 

Vous devrez append une référence à l’assembly System.IO.Compression.FileSystem .

Chaque classe de bibliothèque a une page MSDN. C’est celui de ZipFile .

Notez la spécification de l’espace de noms et de l’assembly dans la section supérieure.