0

我正在 VisualStudio 10 中创建一个小型 WPF 程序,它在 matlab 中绘制一个图形,然后将此图形保存到目录中的一个文件中。

在 C# 中,我首先检索当前路径

路径 = System.IO.Directory.GetCurrentDirectory();

之后,我将它与 MLApp 包一起发送到 Matlab,让 matlab 保存在正确的目录中。

matlabExe.Execute("cd" + 路径 + ";"); 其中 matlabExe 是 MLApp.MLApp 东西..

但是,由于 C# 有这种用双反斜杠 (\\) 保存路径的奇特方式,matlab 无法识别该路径!所以,我想会很容易,只要做

path.Replace(System.IO.Path.DirectorySeparatorChar, System.IO.Path.AltDirectorySeparatorChar); 但可悲的是,这并没有起到作用!将手表添加到路径时,我发现执行此替换后没有任何变化..

我还尝试通过执行替换双分隔符“手动”

path.Replace("\\", "/");

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

谢谢你的帮助!

4

1 回答 1

0

C# 使用双 \ 作为转义序列

如果您在调试窗口中查看字符串,它将如下所示

 "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,计数也将为 3。

如果matlab不能识别路径还有另一个原因

如果您想显示您尝试创建的确切路径以及 C# 吐出的确切路径,我可以帮助您

有关详细信息,请参阅MSDN 上的转义序列

于 2012-07-06T14:40:47.147 回答