如何在Mac OS的Mono下用C#形成文件路径?

时间:2014-07-30 00:24:52

标签: .net mono filepath

我正在尝试执行

Process.Start(s);

在Mono Framework的C#中(在Mac OS中)。

但似乎我无法使用此代码正确构建字符串:

var appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) +
Path.DirectorySeparatorChar + appName + Path.DirectorySeparatorChar;
var tempDir = appDataDir + "temp" + Path.DirectorySeparatorChar;
var s = "file://" + tempDir + "test.html";

我收到以下错误:"执行时出错:file:// C:\ users \ my_username \ Application Data \ my_app_name \ temp \ test.html。消息:DDE失败。"

2 个答案:

答案 0 :(得分:2)

您可以远离DirectorySeparatorChar并让Mono / .Net框架为您进行路径解析和组合:

var appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
Console.WriteLine (appDataDir);
var tempDir = Path.Combine (appDataDir, "temp");
Console.WriteLine (tempDir);
var s = Path.Combine (tempDir, "test.html");
Console.WriteLine (s);
Process.Start (s);

如果您使用的是OS-X,则会打开" file:///Users/administrator/.config/temp/test.html"在您的默认浏览器中。

答案 1 :(得分:0)

Path.DirectorySeparatorChar应该在Linux和OS X中返回“/”,这是形成路径的正确方法。

仅供参考,Path.DirectorySeparatorChar应该返回“\”这个。