使用c#调用带有参数的Winzip32.exe

时间:2012-02-25 13:39:05

标签: c# .net-3.5 winzip

我希望通过我的控制台应用程序使用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打开了自己的窗口。我为它写了 - 但它打开了。

4 个答案:

答案 0 :(得分:1)

也许你传递带有空格的路径(在zipNamefolderName参数中)而不用双引号括起来。

答案 1 :(得分:0)

http://www.rondebruin.nl/parameters.htm - >看着我认为代码是:

startInfo.Arguments = string.Format(“ - e {0} {1}”,zipName,folderName);

答案 2 :(得分:0)

选项-eZ是什么?我认为这是你的问题

我认为以下是确定压缩方法的唯一选项。

-ex = eXtra

-en =正常

-ef =快速

-es =超级快

-e0 =无压缩

答案 3 :(得分:0)

您可以使用ProcessStartInfo.WindowStyle属性

来避免打开窗口

试试这个:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "C:\\Program Files\\WinZip\\winzip32.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;