#c# #process.start
#c# #process.start
Вопрос:
Я хочу запустить exe-файл с помощью c #, но я не могу использовать Process.Start()
, потому что я не знаю местоположение exe-файла.
Я не начинал писать, поэтому у меня пока нет никакого кода.
Комментарии:
1. » потому что я не знаю направление exe-файла. » — что здесь означает «направление»?
Process.Start
как запустить exe-файл с C#2. Я имел в виду «местоположение», путь к exe-файлу
3. Вы хотите запустить файл, но не знаете, где он находится? Откуда вы вообще знаете, что файл существует? Очевидно, что это невозможно сделать.
4. Если файл существует на вашем пути, просто укажите имя exe
Proess.Start
, и он будет искать ваш ПУТЬ, чтобы найти exe.5. Знаете ли вы, по крайней мере, имя exe? Если это запущенный процесс, вы можете найти его вручную ( оболочка )
Ответ №1:
Используйте следующее :
string locateFile = "cmd.exe";
string environPath = Environment.GetEnvironmentVariable("Path");
string[] paths = environPath.Split(new char[] { ';' }).ToArray();
string filePath = "";
foreach (string path in paths)
{
string file = Directory.GetFiles(path, locateFile, SearchOption.TopDirectoryOnly).FirstOrDefault();
if (file != null)
{
filePath = file;
break;
}
}
if (filePath.Length > 0)
{
Console.WriteLine("File location : '{0}'", filePath);
}
else
{
Console.WriteLine("File not found");
}
Console.ReadLine();
Комментарии:
1. Конечно, не нужно идти на такие меры?
Process.Start
уже выполняется поискPATH
2. @canton7: класс process не имеет переменных среды. И если вы задаете переменную Process Path, а файл не найден, вам нужно обработать исключение.
3. Боюсь, я не уверен, что вы пытаетесь сказать.
Process.Start("cmd.exe")
например, работает нормально. Да, вы получите исключение, если exe-файл не существует на вашем пути, но это нормально4. @canton7: я никогда раньше не использовал эту перегрузку. В каждом случае, когда я использую класс process, я получаю исключение, и исправление заключается в добавлении полного пути.
5. Вы получите точно то же самое, если используете
ProcessStartInfo