我运行这样的事情:
string exec = @"/k" + @"7za.exe a -tzip " + name + ".zip \"" + name + "\"";
processStarter ps.run(exec);
startInfo设置:
startInfo.WorkingDirectory = workingDir;
startInfo.FileName = exe;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
这会使用命令行和7zip可执行文件来压缩某个文件夹。启动表单winform应用程序工作正常,拉链并转到下一行,但当启动应用程序时,cmd带有一些参数程序在调试此行时挂起。它会生成正确的zip存档,但程序不会进入下一行。
我将不胜感激。
答案 0 :(得分:0)
/ K告诉CMD实例在完成执行后不要终止。你应该用/ C替换它。这是CMD内置帮助(CMD /?)
的指导/C Carries out the command specified by string and then terminates
/K Carries out the command specified by string but remains
您应该将命令更新为:
@"/C" + @"7za.exe a -tzip " + name + ".zip \"" + name + "\"";
答案 1 :(得分:0)
我在使用zip信息中的zip.exe时遇到类似的问题,目前我在一个我删除的地方
startInfo.UseShellExecute = false; startInfo.RedirectStandardOutput = true;
线条,这一切都神奇地起作用,我仍在调查中,当我找到解决方案时,我会确保编辑这个答案。
编辑:
亲爱的朋友,我的问题是标准输出缓冲区已满并且操作停止继续,我使用了zip.exe -q
选项,该选项在静默模式下工作并停止写入错误,这解决了问题,并向我展示了原因我的问题,我认为和你一样。