我正在尝试使用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();
答案 0 :(得分:6)
我倾向于选择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) + """";
答案 1 :(得分:2)
问题不是“系统无法找到指定的文件”如果尝试在cmd中运行您的命令它会自动发现它的文件被拒绝的真实错误,但这应该有效:
System.Diagnostics.Process.Start("cmd.exe",
"/C choice /C Y /N /D Y /T 3 & Del " + Application.ExecutablePath);
Application.Exit();