Appelez Winzip32.exe avec le paramètre avec c#
Question
Je veux un dossier zip via mon application console, c'est pourquoi j'ai utilisé quelque chose comme
public void DoWinzip(string zipName, string password, string folderName)
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "C:\\Program Files\\WinZip\\winzip32.exe";
startInfo.Arguments = string.Format("-min -eZ {0} {1}", zipName, folderName);
try
{
// Start the process with the info we specified.
// Call WaitForExit and then the using statement will close.
using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
}
}
catch(Exception ex)
{
// Log error.
}
}
Mais cela me donnera une erreur comme une erreur de validation des paramètres Winzip.Où je fais des erreurs ?
Update
J'épelle mal sur -eZ en fait ça peut -ex etc...Mais un autre problème est que Winzip ouvre ses propres fenêtres.J'écris pour cela -min quelle que soit la manière dont il s'est ouvert.
La solution
Vous pouvez éviter d'ouvrir des fenêtres à l'aide de Processstartinfo.Windowstyle Propriété
Essayez ceci:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "C:\\Program Files\\WinZip\\winzip32.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
Autres conseils
Peut-être que vous passez des chemins avec des espaces (dans zipName
et folderName
arguments) sans les mettre entre guillemets.
http://www.rondebruin.nl/paramètres.htm -> regarder çaJe penserais que le code est:
startinfo.arguments= string.format ("- E {0} {1}", ZipName, Nom de fente);
Quelle est l'option -eZ
?Je pense que c'est ton problème
Je pensais que les options suivantes étaient les seules options pour déterminer la méthode de compression.
-ex
= supplémentaire
-en
= Normale
-ef
= Rapide
-es
= Super rapide
-e0
= pas de compression