3

我正在尝试使用 7-zip 压缩来创建示例文件的 zip,如示例 http://www.dotnetperls.com/7-zip 如 URL 所述,“您必须指定“如果较新则复制”或“始终复制”将可执行文件等文件复制到输出目录。”

我发现当我在 VS 项目中使用此代码时,当我在属性窗口中看到 7za.exe 的属性时,我确实可以选择指定“如果较新则复制”

但是当我在 VS 网站中使用时,我找不到这个选项。结果,当我调试这个程序时,它说它找不到7za.exe

string sourceName = "pdfSample.pdf";
string targetName = "pdfSample.gz";

ProcessStartInfo p = new ProcessStartInfo();
p.FileName = "7za.exe";

p.Arguments = "a -tgzip \"" + targetName + "\" \"" + sourceName + "\" -mx=9";
p.WindowStyle = ProcessWindowStyle.Hidden;

try
{
    Process x = Process.Start(p);
    x.WaitForExit();
}
catch (Exception ex)
{
    Console.Write(ex.ToString());
} 

知道为什么在 VS 网站的情况下没有“如果更新则复制”选项吗?

谢谢!

4

2 回答 2

2

您需要包含 7za.exe 的路径。请记住,网页是在匿名用户或应用程序池的帐户下运行的。这些帐户还需要对 7zip 的路径和 exe 具有权限。

于 2013-01-24T14:09:34.203 回答
1

就个人而言,我永远不敢从 ASP.NET 应用程序中启动新进程。

原因是我不知道该进程是否会显示某些窗口或执行其他操作,例如单实例。

如果我必须解决您的要求,我会使用类库来处理 7zip 文件

于 2013-01-24T15:18:40.923 回答