Процесс.начните с приложения и имени файла в качестве переменных

#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 работает неправильно.