Проверьте, существует ли исполняемый файл в пути Windows
Если я запускаю процесс сShellExecute
(или в .net сSystem.Diagnostics.Process.Start()
) для запуска процесса имени файла необязательно указывать полный путь.
Если я хочу запустить блокнот, я могу использовать
Process.Start("notepad.exe");
вместо
Process.Start(@"c:\windows\system32\notepad.exe");
потому что дирекцияc:\windows\system32
является частью переменной окружения PATH.
Как я могу проверить, существует ли файл в переменной PATH, не выполняя процесс и не анализируя переменную PATH?
System.IO.File.Exists("notepad.exe"); // returns false
(new System.IO.FileInfo("notepad.exe")).Exists; // returns false
но мне нужно что-то вроде этого:
System.IO.File.ExistsOnPath("notepad.exe"); // should return true
а также
System.IO.File.GetFullPath("notepad.exe"); // (like unix which cmd) should return
// c:\windows\system32\notepad.exe
Существует ли предопределенный класс для выполнения этой задачи в BCL?