#c# #process
Вопрос:
Долго искал, но на удивление не смог найти этот конкретный вопрос:
С помощью C# я хочу (нажав кнопку в форме) запустить определенный файл с определенным приложением.
При использовании «Process.start(переменная)» Я могу выбрать только одно из двух.
И с помощью «Process.startinfo.filename» (например: https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.processstartinfo.filename?view=net-5.0) похоже, что это тоже так.
Разве нельзя просто объединить и то, и другое каким-нибудь «легким» способом?
Спасибо.
Комментарии:
1. Что вы подразумеваете под объединением?
2. @Тимоти. с указанием обеих переменных. поэтому скажите ему, какой файл открыть, и скажите, с помощью какой программы его открыть.
3. После просмотра опубликованного ответа ваш вопрос теперь имеет смысл, но вопросы должны стоять сами по себе.
Ответ №1:
Обычно вы запускаете файл с приложением, используя аргумент команды (т. е. ‘notepad.exe file.txt»).
Если это возможно с приложением(приложениями), которое вы пытаетесь запустить, вам просто нужно будет установить Filename
свойство StartInfo
в имя, если оно указано в ПУТИ, или полный путь приложения и Arguments
свойство в путь к файлу.
var process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.Arguments = "C:\{pathToFile}\file.txt";
process.Start();
Приведенный выше код запустит открытие блокнота file.txt. Вы можете просто заменить FileName
и Arguments
переменными, содержащими пути к приложению и файлу.
Комментарии:
1. хм, это не дает мне того результата, которого я ожидал. Но не знаю, связано ли это с вашим ответом или с запущенной программой. При запуске рабочего стола с помощью FME quicktranslator он не выдает мне правильный вывод. Но, полагаю, ваш ответ может быть правильным, поэтому я буду считать вопрос решенным. Спасибо
2. Если кто-нибудь задастся вопросом или прочтет эту тему в будущем: причина, по которой она не работала, в том, что на пути были пространственные пространства. Вам нужно использовать знак «$» при вводе аргументов, иначе process.start работает неправильно.