2016-05-12 40 views
0

almost the same problem删除运行的可执行

我有两个文件A.EXE文件夹C:\之一,A.EXE在C:\二,都在运行,但我想在只删除文件第一个文件夹

(如果没有这个条件,我可以用

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

,然后删除该文件 )

almost the same problem他回答RUNO nce注册表项,但我不在乎用户是否登录,我现在只想删除它。你可以帮我吗?

+2

我不知道该链接是好的,你不觉得吗? –

+0

if(!process.ProcessStartInfo.FileName.Contains(“one”))process.Kill();也许? –

+1

@CallumBradbury这会杀死其中包含单词“one”的其他进程。 – DGibbs

回答

2

这听起来像你正试图找出哪个进程对应于哪个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); 
+0

作品!非常感谢,但我用Path.GetFileNameWithoutExtension – PolyProgrammist

+0

@PolyProgrammist谢谢我更新了帖子 – ChaseMedallion