如何处理文件名

时间:2012-03-14 12:08:49

标签: c# c#-4.0 process

我正在尝试使用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 个答案:

答案 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();