Как запустить команду процесса на Mac?

#c# #.net

#c# #.net

Вопрос:

Я пытаюсь практиковать этот класс процесса, но это был провал, так как я не мог понять, как правильно писать имена файлов и пути.

Это то, что я пытаюсь сделать, но каждый раз я получаю одну и ту же ошибку: необработанное исключение. Система.ComponentModel.Win32Exception (2): нет такого файла или каталога

 Process.Start("/Applications/Utilities/TextEdit.app/Contents/MacOS/TextEdit");
 

Я пробовал разные пути, которые не сильно отличались от этого, но, как я уже сказал, я не знал, что с этим делать.

Знаете ли вы, каков точный способ сделать это?

Комментарии:

1. В именах файлов и каталогов в качестве разделителя используется обратная косая черта. Вы используете косую черту вперед. Кроме того, вам необходимо указать полное имя файла, включая его расширение (которое может быть скрыто в проводнике Windows).

2. @JohnWu Предположительно, если они работают на компьютере Mac, пути не будут использовать обратную косую черту, и у них нет проводника Windows

3. На моей машине с Linux Process.Start("/path/to/executable") это работает, поэтому я не думаю, что это проблема форматирования пути. Является TextEdit ли сам по себе исполняемым файлом?

4. @bisen2 Привет, я понял это. Это все из-за проблемы с путем. Ошибка, которую я получил, была полностью правильной. Такого пути нет, и правильный способ сделать это — /System/Applications/TextEdit.app/Contents/macOS/Textedit, по крайней мере, на Catalina.

Ответ №1:

пожалуйста, используйте этот код :

 using (Process myProcess = new Process())
{
    myProcess.StartInfo.UseShellExecute = true;
    myProcess.StartInfo.FileName = fileName;
    myProcess.StartInfo.CreateNoWindow = false;
    myProcess.Start();
}