【发布时间】:2020-01-12 00:26:41
【问题描述】:
我有一个问题,我想用 7za.exe 解压缩一个 zip 文件,然后我想终止该进程。如果我使用如下代码,我会遇到进程在解压缩文件之前被终止的问题。
我已经尝试过使用 HasExited 或 WaitForExit,但没有机会。有人有想法吗?唯一可行的方法是使用 Thread.Sleep(1000) 函数,我不能使用它,因为它会减慢一些其他进程。
System.Diagnostics.ProcessStartInfo zipper = new System.Diagnostics.ProcessStartInfo(@"##archzip.text##");
zipper.Arguments = string.Format("x " + (PathOfFile) + " -o" + (NewPathOfFile) + "");
zipper.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
System.Diagnostics.Process proc = System.Diagnostics.Process.Start(zipper);
proc.Kill();
提前致谢!
【问题讨论】:
-
为什么需要杀死进程?解压后不会自行退出吗?
-
如果您发现自己杀死了一个预期会自行退出的进程,那么您做错了。
-
为什么不直接使用代码解压缩文件,而不是为此使用外部工具? (有一些相当不错的库可用于 c#,例如 nuget.org/packages/DotNetZip)
-
感谢您的回复。我只能使用系统类,这就是我选择使用7za.exe的原因..