Path.Combine正在向文件路径添加斜杠?

时间:2016-12-08 21:10:07

标签: c#

请参阅下面的代码。我不确定为什么两个额外的//出现在文件扩展名之前或者如何最好地处理?

string avatarFilePath = "~/_images/avatar/";
string userId = 53da95a1-cc48-42d0-9a00-167f47ce5933";
string avatarFileExt = ".png";

string path = Path.Combine(avatarFilePath, userId, avatarFileExt);

//value of 'path' is: "~/_images/avatar/53da95a1-cc48-42d0-9a00-167f47ce5933\\.png" <-- note two slashes before extension

1 个答案:

答案 0 :(得分:1)

Path.Combine不用于创建文件名或构建URL。您应该首先构建文件名,然后使用Uri构建您的URL。像

这样的东西
string avatarFilePath = "~/_images/avatar/";
string userId = 53da95a1-cc48-42d0-9a00-167f47ce5933";
string avatarFileExt = ".png";
string fileName = String.Format("{0}{1}", userId, avatarFileExt);
Uri uri = new Uri(avatarFilePath, fileName);
string url = uri.ToString();

如果你想要一个物理文件路径,你可以使用

Server.MapPath(url);