2013-05-08 93 views
1

我想逃避序列的C:\ Program Files空間。 本來我逃脫它的字符串如何逃避Environment.SpecialFolder.ProgramFiles中的空間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); 

雖然在我的第一嘗試Program Files文件用手

\"" + ProgramFiles + "\\WinCon2\\*.*\" \"" 

和 「C:\ Program Files文件」 逃過字符串...

現在我想請使用

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) 

Environment.GetEnvironmentVariable("PROGRAMFILES") 

,但我怎能逃脫呢?

回答

0

這是你想要什麼?

您可以指定加引號的路徑..

由於空間分隔不同的參數,你必須給加引號的路徑。

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 + "\""); 
+1

也感謝你,你的解決方案也能正常工作...豎起大拇指! – incubuzz1978 2013-05-08 11:04:17

1

我試圖與這一點,它按預期工作:

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(); 
+0

感謝您的快速幫助...救了我的一天:P – incubuzz1978 2013-05-08 09:15:29