使用c#参数调用Winzip32.exe
本文关键字:Winzip32 exe 调用 参数 使用 | 更新日期: 2023-09-27 18:25:42
我想通过控制台应用程序使用zip文件夹,这就是我使用之类的东西的原因
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.
}
}
但这会给我带来类似winzip参数验证错误的错误。我哪里做错了?
Update
我在-eZ上拼写错了——实际上可能是-ex等等……但另一个问题是winzip打开了自己的窗口。我为它写作——不管它打开了多少分钟。
也许您传递的路径带有空格(在zipName
和folderName
参数中),而没有用双引号括起来。
使用ProcessStartInfo.WindowStyle属性可以避免打开窗口
试试这个:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "C:''Program Files''WinZip''winzip32.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
http://www.rondebruin.nl/parameters.htm->看到这个,我会认为代码是:
startInfo.Arguments=字符串。格式("-e{0}{1}",zipName,folderName);
选项-eZ
是什么?我认为这是你的问题
我认为以下是确定压缩方法的唯一选项。
-ex
=eXtra
-en
=正常
-ef
=快速
-es
=超快速
-e0
=无压缩