2014年6月5日 星期四

system() 執行的路徑帶有空格的解決方法

正常在 C/C++ 呼叫 system() 時,system() 函式在 Windows 上會呼叫 cmd.exe,然後代入 system() 的括號裡給的參數 [1]
不過參數如果帶有空格,例如想執行某個外部的程式,而該程式位在 Program Files 資料夾內時,有可能出現類似這樣的錯誤訊息:
windows找不到'C:\Program' 請確定您輸入的正確名稱,並且重試
而解決方法就是把有空格的部分用 \" 包起來 [2-3],讓 C 語言執行時看到的字串是這樣:
C:\"Program Files"\....
例如:
system("C:\\\"Program Files\"\\Java\\jdk1.7.0_45");

參考資料:
1、c++ system()和WinExec()的区别
2、C語言可以呼叫名字有空格的資料夾嗎???
3、C语言 system()函数打开一个程序,路径有空格的问题

1 則留言:

Kelvin 提到...

終於找到簡要的解決方法了