Path.Combine只连接最后两个字符串

时间:2014-03-08 12:06:01

标签: c#

嗨,我有一个Path.Combine的问题,它没有返回corect结果。这就是我的意思。我将4个字符串组合成浴缸:

string basePath = "D:\\Programare\\Visual Studio\\TFS Workspace\\CodeArt\\Development\\CodeArt\\Backend\\WebApi\\CodeArt.WebApi\\bin\\..\\Content\\"
string userId = "4d52ec77-966a-480a-a4c3-c1ff67438fe9";
string filePath = "\\Avatar";
string storageFileName = "ffdc24a9-f553-41ce-aa33-042b07fcfdab.png";

var result  = Path.Combine(basePath , userId , filePath , storageFileName);

现在由于某种原因,我的这段代码只返回“\ Avatar \ ffdc24a9-f553-41ce-aa33-042b07fcfdab.png”。

我做错了什么为什么不是Path.Combine将所有字符串连接起来。

1 个答案:

答案 0 :(得分:6)

来自MSDN:Path.Combine(String, String, String, String)

  

path1应该是绝对路径(例如,“d:\ archives”或   “\ archives \ public”)。如果其中一个后续路径也是   绝对路径,组合操作会丢弃之前组合的所有组合   路径和重置到该绝对路径

Asper MSDN文档Path1应该是 Absolute Path ,并且您不应该在任何后续路径中使用 Absolute Path

替换它:

string filePath = "\\Avatar";

有了这个:

string filePath = "Avatar";