Путь к файлу процесса c#

299
17 декабря 2017, 07:49

Получаю список процессов

 System.Diagnostics.Process[] procList = System.Diagnostics.Process.GetProcesses();

Как узнать папку, где находится этот процесс ? Пытался так

procList[0].MainModule.FileName - возвращает null

procList[0].StartInfo.FileName - возвращает пустую строку

Есть еще способы ?

Answer 1

Если Вам нужно получить путь программы откуда запускаете свой файл:

using System.Linq;
using System.Diagnostics;
try
{
  foreach (var proc in Process.GetProcesses().Where(p => 
                      !string.IsNullOrEmpty(p.MainWindowTitle)).ToList())
  {
    Console.WriteLine(proc.MainModule.FileName); 
  }
}
catch { /*Тут ловим исключения*/ }

Так же без использования Linq

Console.WriteLine(Process.GetCurrentProcess().MainModule.FileName);

Имя запускаемого файла можно узнать так:

Console.WriteLine(Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName));

Чтобы перечислить все папки через процессы можно воспользоваться таким способом:

foreach (Process instance in Process.GetProcesses())
{
  try
  {
     Console.WriteLine(instance.ProcessName);
     Console.WriteLine(instance.MainModule.FileName);
  }
  catch (System.ComponentModel.Win32Exception w32ex)
  {
     Console.WriteLine(w32ex.Message);
  }
  catch (Exception ex)
  {
     Console.WriteLine(ex.Message);
  }
}

Если же Вы хотите получить все папки процессов можно воспользоваться через WMI

using (var mCollection = new ManagementClass("Win32_Process").GetInstances())
{
  foreach (ManagementObject process in mCollection)
  {                            
    Console.WriteLine((string)process["ExecutablePath"]);      
    //Console.WriteLine(FileVersionInfo.GetVersionInfo((string)process["ExecutablePath"]).FileDescription);                     
  }
}
READ ALSO
Unity3D Нужна помощь с игрой [требует правки]

Unity3D Нужна помощь с игрой [требует правки]

Всем привет! Вобщем, выпустил вчера первую игру в Play MarketЯ её скачал оттуда, запустил, нажал на кнопку Play и всё просто зависло

169
Подключение БД к форме [требует правки]

Подключение БД к форме [требует правки]

Как подключить БД Access к WindowsForm?

233
как организовать роутинг

как организовать роутинг

Делаю роутинг и мне нужно что бы по клику на кнопку "Next Day" выводило погоду на следующий день

268