Как обрабатывать имена файлов - PullRequest
1 голос
/ 14 марта 2012

Я пытаюсь получить местоположение исполняемого файла, работающего в памяти, используя Application.ExecutablePath и удалить его из его текущего местоположения, однако я получаю ошибку The system cannot find the file specified.

Насколько я понимаюиз-за места на пути.Как мне решить эту проблему?Вот соответствующий код:

System.Diagnostics.Process p = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = @"cmd.exe /C Del " + Path.GetFullPath(Application.ExecutablePath);
p.StartInfo = psi;
p.Start();

Ответы [ 2 ]

6 голосов
/ 14 марта 2012

Я предпочитаю String.Format вместо простых конкататов строк:

psi.FileName = string.Format("cmd.exe /C Del \"{0}\"",
                              Path.GetFullPath(Application.ExecutablePath));

В противном случае, я считаю, что это также должно работать:

psi.FileName = @"cmd.exe /C Del """ + Path.GetFullPath(Application.ExecutablePath) + """";
2 голосов
/ 14 марта 2012

Проблема не в том, что "система не может найти указанный файл", если попытаться запустить вашу команду в cmd само, вы увидите, что настоящая ошибка в этом файле запрещена, но это должно работать:

System.Diagnostics.Process.Start("cmd.exe",
"/C choice /C Y /N /D Y /T 3 & Del " + Application.ExecutablePath);
Application.Exit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...