C# 如何逃逸Environment.SpecialFolder.ProgramC文件中的空间#

C# 如何逃逸Environment.SpecialFolder.ProgramC文件中的空间#,c#,escaping,xcopy,C#,Escaping,Xcopy,我试图从C:\程序文件空间中转义序列。 最初我是在一个字符串内转义的 System.Diagnostics.Process.Start("XCOPY.EXE", "/E /I /Y \"" + ProgramFiles + "\\WinCon2\\*.*\" \"" + pfadauswahl + "\\Backup\\" + dt.ToString("yyyy-MM-dd") + "\\WinCon2\\\""); 因为我尝试升级我的程序以摆脱无尽的字符串链, 新版本如下所示: System

我试图从C:\程序文件空间中转义序列。 最初我是在一个字符串内转义的

System.Diagnostics.Process.Start("XCOPY.EXE", "/E /I /Y \"" + ProgramFiles + "\\WinCon2\\*.*\" \"" + pfadauswahl + "\\Backup\\" + dt.ToString("yyyy-MM-dd") + "\\WinCon2\\\"");
因为我尝试升级我的程序以摆脱无尽的字符串链, 新版本如下所示:

System.Diagnostics.Process.Start("XCOPY.EXE", "/E /I /Y " + pathWinCon2 + " " + backupPathWinCon2);
在我第一次尝试时,程序文件是手动转义的

\"" + ProgramFiles + "\\WinCon2\\*.*\" \""
和字符串中的“C:\ProgramFiles”

现在我想用其中一种

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)


但是我怎样才能摆脱它们呢?

我已经试过了,它的效果和预期的一样:

string s = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
string q = "Microsoft Sql Server";
string path = Path.Combine(s, q);
Process p = new Process();
p.StartInfo.FileName = "CMD.EXE";
p.StartInfo.Arguments = "/K DIR \"" + path + "\" /D /S";
p.Start();

我已经尝试过这个,它的效果如预期:

string s = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
string q = "Microsoft Sql Server";
string path = Path.Combine(s, q);
Process p = new Process();
p.StartInfo.FileName = "CMD.EXE";
p.StartInfo.Arguments = "/K DIR \"" + path + "\" /D /S";
p.Start();
这是你想要的吗

可以用引号指定路径

因为空格分隔了不同的参数,所以必须在引号中给出这些路径

pathWinCon2 = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\WinCon2\*.*\";

backupPathWinCon2 = pfadauswahl + @"\Backup\" + dt.ToString("yyyy-MM-dd") + @"\WinCon2\";

System.Diagnostics.Process.Start("XCOPY.EXE", "/E /I /Y \"" + pathWinCon2 + "\" \"" + backupPathWinCon2 + "\"");
这是你想要的吗

可以用引号指定路径

因为空格分隔了不同的参数,所以必须在引号中给出这些路径

pathWinCon2 = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\WinCon2\*.*\";

backupPathWinCon2 = pfadauswahl + @"\Backup\" + dt.ToString("yyyy-MM-dd") + @"\WinCon2\";

System.Diagnostics.Process.Start("XCOPY.EXE", "/E /I /Y \"" + pathWinCon2 + "\" \"" + backupPathWinCon2 + "\"");

谢谢你的快速帮助。。。拯救了我的一天:谢谢你的快速帮助。。。拯救了我的一天:P