Как убить процесс C #?

Я создаю программу на C #, которая распаковывает файл и работает над этим файлом.

Иногда я получаю это сообщение: «процесс не может получить доступ к файлу c: …. потому что он используется другим процессом»

Что я могу сделать? Как его убить?

Вы должны выяснить, какая программа будет обращаться к файлу. Вы забыли выйти из одного из ваших собственных приложений или есть ли другой доступ к файлу?

Вы можете написать код C #, чтобы убить процесс, но лучший подход – выяснить, почему он уже используется другим процессом.

Чтобы убить все процессы с именем nameOfProcess в C #:

Process[] ps = Process.GetProcessesByName("nameOfProcess"); foreach (Process p in ps) p.Kill(); 

Кроме того, как отмечает @Darin, вы можете взглянуть на этот другой stream SO: Как узнать, какой процесс блокирует файл с помощью .NET?

Инструменты sysinternals, указанные в комментариях @Darin, можно найти по адресу http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

Process Monitor будет работать, но Process Explorer – это гораздо лучшее приложение для этого. Это также из Sysinternals, который теперь принадлежит Microsoft. Запустите Process Explorer в качестве администратора и нажмите кнопку поиска. Затем будут показаны приложения и streamи, которые используют файл.