2012-07-06 62 views
0

我在VisualStudio 10中創建了一個小型WPF程序,它在matlab中繪製了一個圖形,然後將此圖形保存到目錄中的一個文件中。替換路徑分離器csharp for matlab路徑

在C#,我首先用

路徑= System.IO.Directory.GetCurrentDirectory()檢索當前路徑;

之後,我把它發送到Matlab與MLApp軟件包,以獲得matlab保存在正確的目錄。

matlabExe.Execute(「cd」+ path +「;」); 在這matlabExe是MLApp.MLApp啄..

然而,由於C#具有節約雙反斜線路徑的這種奇特的方式(\\),MATLAB不認路!因此,很容易我想,只是做

path.Replace(System.IO.Path.DirectorySeparatorChar,System.IO.Path.AltDirectorySeparatorChar);但是很傷心,那並沒有完成這項工作!當增加一個手錶的路徑,我什麼也沒看見過這樣更換後改變..

我也試圖通過做

path.Replace更換雙分隔符「手動」(「\ \「,」/「);

但是,也沒有運氣..我怎麼能做到這一點? :(

感謝您的幫助!

回答

0

C#採用雙\作爲轉義序列

如果你看一下在調試窗口中的字符串時,它看起來像這樣

"C:\\Program Files\\MatLab\\MatLab.exe" 

但是當程序實際使用字符串時,它看起來像這樣

"C:\Program Files\MatLab\MatLab.exe" 

S你需要做任何道路,取而代之的是自己照顧它,這就是爲什麼你有麻煩。如果你想確保試試這個

string path = "C:\Program Files\MatLab\MatLab.exe"; 
    int count = path.Count(s => s == '\'); 

計數爲3,即使在調試窗口中會顯示6

如果MATLAB不能識別路徑還有另外一個原因

如果你想顯示你想要創建的確切路徑以及C#吐出的確切路徑,我可以幫助你

欲瞭解更多信息,請參閱Escape Sequences on MSDN