将System.IO.Path和System.Uri组合成一个完整的系统路径

时间:2014-07-22 14:36:42

标签: c# path uri

我正在为我的应用程序编写一个小型Web界面,并且我已经开始将已知的文档路径和请求URI组合到一个绝对本地路径中以从中检索文件。

为简单起见,我将代码缩小到相关的内容:

string AssemblyDirectory = "C:\MyAppDir\";
string uri = "/index.html";
return new Uri(new Uri(Path.Combine(AssemblyDirectory, "http_docs")), uri).AbsolutePath;

这将始终只返回uri部分;即返回是" /index.html" ;,它似乎不喜欢正确组合Uri和Path的类型。我知道只需用" \"替换" /"然后做一个简单的path.combine就行了,但我不能帮助,但认为有一个.net解决方案,这是我忽略的地方。

1 个答案:

答案 0 :(得分:0)

问题是您/之前有index.html。它使Uri API引用了uri的根,它最终为您提供:c:\index.html

删除/ in uri以使其正常工作:

string uri = "index.html";