2016-05-12 13 views
0

Ich habe almost the same problemlöschen ausführbare

Ich habe zwei Dateien im Ordner c a.exe: \ ein und a.exe in c: \ zwei, die beide aktiv sind, aber ich möchte in der die Datei nur löschen ersten Ordner

Für almost the same problem war die Antwort Runo (Wenn nicht diese Bedingung, ich

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

und löschen Sie anschließend die Datei verwenden könnte) Nce Registrierungsschlüssel, aber es ist mir egal, ob der Benutzer sich anmeldet oder nicht, ich möchte es jetzt nur löschen. Kannst du mir helfen?

+2

Ich bin nicht sicher, ob die Verbindungen die Guten sind, findest du nicht? –

+0

if (! Process.ProcessStartInfo.FileName.Contains ("one")) process.Kill(); Könnte sein? –

+1

@CallumBradbury Das würde andere Prozesse mit dem Wort "Eins" in ihnen töten. – DGibbs

Antwort

2

Es klingt wie Sie versuchen herauszufinden, welcher Prozess welcher Instanz von a.exe entspricht?

Scheint, wie Sie dies mit dem Process.MainModule.FileName Eigenschaft tun können:

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

funktioniert! Vielen Dank, aber ich habe Path.GetFileNameWithoutExtension – PolyProgrammist

+0

@PolyProgrammist danke ich habe den Beitrag aktualisiert – ChaseMedallion