2014-03-27 96 views
0

因此,我編寫了一個代碼,它將使用tdm gcc編譯器編譯C++代碼。我的代碼使用openfiledialog,允許用戶選擇要編譯的文件,然後我創建一個字符串命令,如何處理文件路徑中的空格

cmd = "/c g++ " + openfiledialog.filename.toString() + " -o temp.exe"; 

然後我在使用過程實例的正常方式執行此命令。但是,如果文件路徑中有空格,例如:「D:\ haha​​ haha​​ \ test.cpp」,那麼g ++編譯器會顯示一個錯誤,說沒有這樣的目錄哈哈等等等等如何克服這個問題?

回答

1

你需要周圍的文件名引號形成g++命令行:

cmd = "/c g++ \"" + openfiledialog.filename.toString() + "\" -o temp.exe"; 

或者,你可以後期處理由.toString()返回的值插入之前,每一個轉義(反斜槓\)字符空間。但引用方法更容易。

+0

我可以使用String.format()相同嗎? –

+0

好吧,它工作:)謝謝! –

+0

@VishalSharma是的,你也可以使用'.format',但這對於這個簡單的例子來說沒有必要。你仍然需要在字符串中包含轉義引號。 – lurker

相關問題