Я хочу получить полный путь от имени процесса БЕЗ запуска процесса. Другими словами, где C # получает абсолютный путь, когда он выполняет следующее:
Process.Start (startInfo);
startInfo не содержит абсолютный путь.
Полный путь к исполняемому файлу разрешается с помощью переменной среды% PATH%.Вы можете повторить поведение следующим образом:
var result = Environment.GetEnvironmentVariable("PATH") .Split(';') .Select(path => Path.Combine(path, "notepad.exe")) .FirstOrDefault(path => File.Exists(path)); // result == "C:\\Windows\\system32\\notepad.exe"
Возможно, я неправильно понял, но как насчет:
var fInfo = new FileInfo(startInfo.FileName); var fullPath = fInfo.FullName;
Использует стандартную политику поиска Windows: текущая папка и папки в переменной среды PATH.