如何杀死C#进程?

Gol*_*old 5 c#

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

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

我可以做什么?怎么杀了?

csl*_*csl 11

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

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

要在C#中使用名称nameOfProcess终止所有进程:

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

foreach (Process p in ps)
    p.Kill();
Run Code Online (Sandbox Code Playgroud)

另外,正如@Darin所说,您可以看看这个其他SO线程:如何找出使用.NET锁定文件的进程?

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

  • 要首先找出锁定文件的人,您应该从sysinternals查看ProcessMonitor.只需单击工具栏中的望远镜,然后输入文件名即可.您将获得具有此文件的打开句柄的所有进程的列表. (2认同)