C# 终止使用特定映像路径的进程

C# 终止使用特定映像路径的进程,c#,C#,我需要找到一种方法来杀死所有使用特定映像路径的进程。我发现,按名称终止进程并不总是正确地终止进程,因为它的开发人员无法在不同的构建中保持相同的名称 我已经做了一些调查,但还没有找到解决办法。想知道这里是否有人能给我指出正确的方向 这将杀死在特定目录中运行的所有进程 Process.GetProcesses() .First(p => String.Compare(p.MainModule.FileName,filename,true)==0) .Kill()

我需要找到一种方法来杀死所有使用特定映像路径的进程。我发现,按名称终止进程并不总是正确地终止进程,因为它的开发人员无法在不同的构建中保持相同的名称


我已经做了一些调查,但还没有找到解决办法。想知道这里是否有人能给我指出正确的方向

这将杀死在特定目录中运行的所有进程

Process.GetProcesses()
        .First(p => String.Compare(p.MainModule.FileName,filename,true)==0)
        .Kill();
System.Diagnostics.Process.GetProcesses()
.Where(p => Path.GetDirectoryName(p.MainModule.FileName).ToLower().Equals(path.ToLower())
.ToList().ForEach(p => p.Kill());

我相信这就是你想要的

var imagePath = @"C:\applicationfolder";
var processes = Process.GetProcesses()
                .Where(p => p.MainModule.FileName.StartsWith(imagePath, true, CultureInfo.InvariantCulture));
foreach (var proc in processes)
{
    proc.Kill();
}

你能给我们一个映像路径的例子吗?比如C:\ApplicationFolder看看这段代码[C#:如何获取运行进程的完整路径?][1][1]:当它运行到系统进程时,这会抛出“拒绝访问”。仅当文件名指向系统进程时,但是如果没有使用指定文件名运行的进程,它将抛出NullReference异常HanesuperFlyMacNeill,将应用程序放在文件夹
C:\P
C:\W
中,并享受乐趣:)嘿,我不是在争论最佳实践lol。只是做他想做的事。是的,
C:\P
C:\W
在所有东西都关闭的时候会很幽默。这很好。虽然我不确定CultureInfo.InvariantCulture是什么,但请不要认为我以前使用过它,因此MSDN将是我的下一站:)它用于确定字符串如何按区域性进行比较。我不得不放弃它,因为它给出了一个异常错误“无法枚举进程模块”,不知道如何修复它。您缺少一个括号
.Where(p=>Path.GetDirectoryName(p.MainModule.FileName).ToLower().Equals(Path.ToLower())**)**