2016-05-12 53 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