我正在尝试执行
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失败。"
答案 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
应该返回“\”这个。