2011-10-19 17 views
1

我想用參數:filename來運行進程。如何在啓動新進程時用空格指定參數

string parms = filechooser.Filename ;  
    psi = new ProcessStartInfo("timidity", parms); 

當用戶選擇帶有空格的文件名時會出現問題。 郝我可以傳遞參數與「」?

感謝

回答

2

試試這個。

string parms = filechooser.Filename ;  
psi = new ProcessStartInfo("timidity", "\"" + parms + "\""); 
4

你可以在雙引號包住值:

string parameters = string.Format("\"{0}\"", filechooser.Filename); 
psi = new ProcessStartInfo("timidity", parameters); 
3

這應該工作得很好,空間也將被通過。

不過,如果你想逃避的文件名(這取決於應用程序被啓動,即膽怯),這樣做:

string parms = string.Format("\"{0}\"", filechooser.Filename); 
psi = new ProcessStartInfo("timidity", parms); 

這將創建一個基於格式\"{0}\"的字符串。 \"成爲報價("),並且{0}將被替換爲格式字符串之後的第一個參數,即文件名。

您可以使用「開始」,「運行」功能或命令提示符(cmd.exe)嘗試此操作。輸入膽怯那麼你的文件全名,用空格等,看看是否可行:

timidity "my filename" 
1

反斜槓是你的朋友:

"\"timidity\"" 
+0

不,它的文件名有空間,不是要啓動的程序(「膽怯」沒有空格) –

相關問題