在 C# 中的 path.combine [重复]
Posted
技术标签:
【中文标题】\ 在 C# 中的 path.combine [重复]【英文标题】:\ in path.combine in c# [duplicate] 【发布时间】:2016-09-11 23:22:09 【问题描述】:我知道这个问题被问了很多次,但我找不到我需要的东西。
我想获取服务器路径并为其添加图像路径。我做到了
string mypath = Request.Url.GetLeftPart(UriPartial.Authority);
string uploadPath = Path.Combine(mypath, "Upload/Images/");
Response.Write(uploadPath);
这个打印http://localhost\Upload/Images/
,为什么路径中间有个\
。
我通过像这样将/
添加到mypath
来修复它
string mypath = Request.Url.GetLeftPart(UriPartial.Authority) + "/";
这是正确的方法吗?还是有更好的方法来做到这一点?
【问题讨论】:
【参考方案1】:您应该将Uri
类用于URL,因为Path.Combine
用于目录路径操作。
提供统一资源标识符 (URI) 的对象表示,并可轻松访问 URI 的各个部分。
Uri baseUri = new Uri(mypath);
Uri myUri = new Uri(baseUri, "Upload/Images/");
string uploadPath = myUri.AbsoluteUri;
而要获取URL,可以使用AbsoluteUri属性。
【讨论】:
【参考方案2】:这是因为Path.Combine
是为了结合典型的目录路径,比如:
C:\MyDir\MyDir2\MyMyDir
分隔符是\
,而不是分隔符是/
的URL:
http://***.com/questions/37249357/in-path-combine-in-c-sharp/37249373#37249373
如果你想合并 URL 路径,你可以使用 Uri
代替:
Uri baseUri = new Uri(mypath);
Uri myUri = new Uri(baseUri, "Upload/Images/");
【讨论】:
以上是关于 在 C# 中的 path.combine [重复]的主要内容,如果未能解决你的问题,请参考以下文章