2011-08-19 56 views
1

我正在爲Application.ExecutablePath獲取一個字符串變量,然後通過ProcessStartInfo將該變量傳遞給命令行並帶有一些參數。我的代碼工作正常,只要「ExecutablePath」不包含空格,但如果它的確如C:\ documents和settings \ jsmith \ desktop,則C#會將空格作爲轉義處理,並且不會從命令行獲得結果。處理Application.ExecutablePath中的空間

這裏是我如何獲取路徑,還發送命令「lmutil」

string execName = Application.ExecutablePath; 
FileInfo execFileInfo = new FileInfo(execName); 
execPath = execFileInfo.DirectoryName; 

string lmUtil = @"\lmutil"; 
lmExec = execPath + lmUtil; 

This is the method in which I need to handle quotes in paths 

GetLicStats(lmExec + " lmstat -a -c " + licport + "@" + curAdd); 

我怎樣才能確保,如果它包含空格lmExec正確處理。

回答

3
GetLicStats(lmExec + " lmstat -a -c " + licport + "@\"" + curAdd + "\""); 

地址各地把雙引號通常工作

0
execPath = execFileInfo.DirectoryName.Replace(" ", "\ "); 

只需用空格替換空格即可。

+0

感謝您的答覆,並在你讓我覺得在這個正確的方式幫助。我最終在lmexec周圍添加了引號,如下所示:GetLicStats(「\」「+ lmExec +」\「」+「lmstat -a -c」+ licport +「@」+ curAdd); –