删除 运行 个可执行文件

Delete running executable

我有almost the same problem

我在文件夹 c:\one 中有两个文件 a.exe,在 c:\two 中有 a.exe,两者都是 运行,但我只想删除文件在第一个文件夹

(如果不是这个条件,我可以用

foreach (var process in Process.GetProcessesByName("a.exe"))
                process.Kill();

然后删除文件 )

因为 almost the same problem 是答案 RunOnce 注册表项,但我不在乎用户是否登录,我现在只想删除它。你能帮帮我吗?

听起来你好像在试图找出哪个进程对应于 a.exe 的哪个实例?

看来您可以使用 Process.MainModule.FileName 属性:

var exeToDelete = "...";
var exeProcess = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(exeToDelete))
    .SingleOrDefault(p => StringComparer.OrdinalIgnoreCase.Equals(p.MainModule.FileName, exeToDelete));
if (exeProcess != null) { exeProcess.Kill(); }

File.Delete(exeToDelete);