使用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打开了自己的窗口。我为它写作——不管它打开了多少分钟。

使用c#参数调用Winzip32.exe

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

使用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=无压缩