如何杀死C#进程?

时间:2009-10-29 08:12:27

标签: c#

我正在构建一个解压缩文件的C#程序,并处理此文件。

有时候我收到这样的消息:“进程无法访问文件c:....因为它正被另一个进程使用”

我能做什么?如何杀死它?

2 个答案:

答案 0 :(得分:11)

您必须找出正在访问该文件的程序。您是否忘记退出自己的某个应用程序,或者是否有其他人访问该文件?

您可以编写C#代码来杀死进程,但更好的方法是找出它已被其他进程使用的原因。

在C#中杀死名为 nameOfProcess 的所有进程:

Process[] ps = Process.GetProcessesByName("nameOfProcess");

foreach (Process p in ps)
    p.Kill();

另外,正如@Darin所说,你可以看一下这个其他的SO帖子:How do I find out which process is locking a file using .NET?

@Darin在评论中提到的sysinternals工具位于http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

答案 1 :(得分:3)

Process Monitor可以正常运行,但Process Explorer是一个更好的应用程序。它也来自现在由微软拥有的Sysinternals。以管理员身份运行Process Explorer,然后单击搜索按钮。然后,这将显示正在使用该文件的应用程序和线程。