【发布时间】:2011-08-10 16:13:02
【问题描述】:
我们有一个 .NET 应用程序,用于使用 winzip (winzip32.exe) 作为进程自动压缩文件。该过程类似于从命令行使用 winzip 压缩文件。
我们已经配置了一个调度程序来每天运行这个应用程序,并且它运行成功了很长时间。
几天前我们遇到了一个问题,并且没有创建 zip 文件。 但是,我看到 winzip 实例已创建并正在运行,但没有发生压缩。 发行当天机器上没有观察到不均匀的情况。
能否请您帮助我们可能是什么问题,或者在什么情况下,进程无法压缩文件。
参考代码sn-p:
string WinzipPath = ConfigurationManager.AppSettings["WinzipPath"] ;
System.Diagnostics.Process objProc = new System.Diagnostics.Process();
objProc.StartInfo.FileName = WinzipPath;
if(strPassword != "")
{
objProc.StartInfo.Arguments = string.Format("-min -a -en -r -s\"{0}\" {1} {2}", strPassword, strzipFilePath, strFileNames);
}
else
{
objProc.StartInfo.Arguments = string.Format("-min -a -en -r \"{0}\" {1}", strzipFilePath, strFileNames);
}
objProc.StartInfo.RedirectStandardOutput = true;
objProc.StartInfo.UseShellExecute = false;
objProc.StartInfo.CreateNoWindow = true;
objProc.Start();
objProc.WaitForExit();
提前致谢
【问题讨论】:
-
如果您使用像 DotNetZip 这样的库,这会简单得多。有什么理由需要使用 WinZip?
-
0xA3 是对的,像 DotNetZip 这样的 Zip 库更容易使用。顺便说一句:Windows 事件日志中是否有任何错误?
-
更新:DotNetZip 存在严重问题,似乎不再积极维护(请参阅stackoverflow.com/a/14215168/40347)。更好的选择是使用例如zlib 的 .NET 端口、SharpZipLib 或 .NET 4.5 中的 zip 支持