Ho avuto lo stesso problema e risolto chiamando eseguibile 7-zip attraverso shell cmd dal codice C#, come segue,
string zipped_path = "xxx.7z";
string unzipped_path = "yyy";
string arguments = "e " + zipped_path + " -o" + unzipped_path;
System.Diagnostics.Process process
= Launch_in_Shell("C:\\Program Files (x86)\\7-Zip\\","7z.exe", arguments);
if (!(process.ExitCode == 0))
throw new Exception("Unable to decompress file: " + zipped_path);
E dove Launch_in_Shell(...)
è definito come,
public static System.Diagnostics.Process Launch_in_Shell(string WorkingDirectory,
string FileName,
string Arguments)
{
System.Diagnostics.ProcessStartInfo processInfo
= new System.Diagnostics.ProcessStartInfo();
processInfo.WorkingDirectory = WorkingDirectory;
processInfo.FileName = FileName;
processInfo.Arguments = Arguments;
processInfo.UseShellExecute = true;
System.Diagnostics.Process process
= System.Diagnostics.Process.Start(processInfo);
return process;
}
Inconvenienti : Devi aver installato 7zip nella tua macchina e l'ho provato solo con i file ".7z". Spero che questo ti aiuti.
È possibile conoscere il formato zip e scrivere il proprio codec se si è tanto contro le librerie di terze parti e si ama troppo xp = D – Sinatr