我在VisualStudio 10中创建一个小型WPF程序,它在matlab中绘制一个图形,然后将该图形保存到目录中的文件中。
在C#中,我首先使用
检索当前路径path = 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 :(得分:0)
C#使用double \作为转义序列
如果你在调试窗口中查看字符串,它将看起来像这样
"C:\\Program Files\\MatLab\\MatLab.exe"
但是当程序实际使用字符串时,它将如下所示
"C:\Program Files\MatLab\MatLab.exe"
所以你需要做任何路径。它会自己处理它,这就是你遇到麻烦的原因。如果你想确保试试这个
string path = "C:\Program Files\MatLab\MatLab.exe";
int count = path.Count(s => s == '\');
即使在调试窗口中它将显示6,count也将为3。
如果matlab无法识别路径,则还有其他原因
如果你想要显示你想要创建的确切路径以及C#吐出的确切路径,我可以帮助你
有关详细信息,请参阅Escape Sequences on MSDN