Мне нужно получить путь к исполняемому файлу, а информация, которую я получил, - это только исполняемое имя. Мне нужен путь к файлу, а не имя.exe
Пример: у меня есть только "arma3.exe", теперь мне нужно найти путь к нему. Мне нужно что-то вроде этого: "C:\Program Files\Arma3\arma3.exe" <- путь к файлу
Я НЕ прошу "Как найти путь к исполняемому пути CURRENT WPF APPLICATION" и "как получить имя файла с помощью X-пути".
И, пожалуйста, не спрашивайте меня, почему мне нужно найти путь или bla3. У меня есть своя причина сделать это.
Если вы ищете только исполняемые файлы, которые, скорее всего, находятся в каталоге Program Files, вы можете использовать метод GetFiles класса System.IO.Directory:
string NewPath = System.IO.Directory.GetFiles(@"C:\Program Files\", "arma3.exe").FirstOrDefault();
Если может быть более одного файла:
string[] NewPaths = System.IO.Directory.GetFiles(@"C:\Program Files\", "arma3.exe");
То, что вы спрашиваете, это в основном поиск имени файла... Вы можете сделать это разными способами, например:
Не забывайте, что может быть несколько дисков:
В приведенных выше примерах возврат методов в поиск содержит имя папки в переменной, поэтому вы можете просто написать:
IEnumerable<string> matchFiles = possibleFiles.Where(a => a.EndsWith("/fileName.exe"))
Еще одна забота, которую вы должны иметь, - с разрешениями на папку, быть в курсе возможных исключений..
Имейте в виду, что этот поиск может занять некоторое время, может быть, есть и другие способы поиска, например, в реестре Windows или только в индексированных файлах или с использованием нескольких потоков, но это будет ответом на другой вопрос.