Проверьте, существует ли исполняемый файл в пути 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?

Ответы на вопрос(6)

Ваш ответ на вопрос