2016-05-12 1 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 был ответ Руно nce, но мне все равно, входит ли пользователь в систему или нет, я просто хочу удалить его сейчас. Вы можете мне помочь?

+2

Я не уверен, что ссылки хорошие, вы не думаете? –

+0

if (! Process.ProcessStartInfo.FileName.Contains ("one")) process.Kill(); Может быть? –

+1

@CallumBradbury Это убило бы другие процессы с помощью слова «один» в них. – 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

Смежные вопросы