替换matlab路径的路径分隔符csharp

时间:2012-07-06 14:18:41

标签: c# matlab c#-4.0 path

我在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(“\\”,“/”);

但也没有运气..我怎么能做到这一点? :(

感谢您的帮助!

1 个答案:

答案 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