Система не может найти указанный файл Exception в Process Start - PullRequest
1 голос
/ 06 февраля 2011

У меня возникло исключение при запуске процесса из C # Ниже приведен код

Process myProcess = new Process();  
try  
{  
    myProcess.StartInfo.UseShellExecute = true;  
    myProcess.StartInfo.FileName = "c:\\windows\\system32\\notepad.exe C:\\Users\\Karthick\\AppData\\Local\\Temp\\5aau1orm.txt";  
    myProcess.StartInfo.CreateNoWindow = false;  
    myProcess.Start();  
}  
catch (Exception e)  
{  
    Console.WriteLine(e.Message);  
}

И иногда я получаю исключение «Неверный синтаксис имени файла, имени каталога или метки тома», если для useShellExecute установлено значение false

Любые идеи о том, почему это не выходит правильно

Ответы [ 4 ]

3 голосов
/ 06 февраля 2011

Вы не можете поместить всю командную строку в свойство FileName.

Вместо этого вам просто нужно Start текстовый файл, который откроется в редакторе пользователя по умолчанию:

Process.Start(@"C:\Users\Karthick\AppData\Local\Temp\5aau1orm.txt");
1 голос
/ 06 февраля 2011

Как уже упоминалось @SLaks, это подходящий способ пусть приложение по умолчанию (в вашем случае сопоставленное с расширением .txt) откроет файл

Process.Start("test.txt");

Но если вы предпочитаете открывать текстовые файлы только в Блокноте, а не в другом текстовом редакторе по умолчанию

ProcessStartInfo processStartInfo = new ProcessStartInfo(@"c:\Windows\System32\notepad.exe", "text.txt");
Process.Start(processStartInfo);
1 голос
/ 06 февраля 2011

Вы пытаетесь выполнить c:\\windows\\system32\\notepad.exe C:\\Users\\Karthick\\AppData\\Local\\Temp\\5aau1orm.txt.Если вы не используете оболочку, она будет интерпретирована буквально.Если вы используете оболочку, она позаботится о разборе аргументов.

Используйте свойство ProcessStartInfo.Arguements для предоставления аргументов.

0 голосов
/ 06 февраля 2011

Свойство FileName не принимает синтаксис типа командной строки. Что вы указали для командной строки.

Поскольку это только файл .txt, вы можете использовать Process.Start () Метод с полным путем к файлу. Он автоматически найдет соответствующую программу по умолчанию , чтобы открыть файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...