我有以下命令:
string reportedContentFolderPath =
Path.Combine(contentFolder.FullName.ToString(), @"\ReportedContent\");
Run Code Online (Sandbox Code Playgroud)
当我查看调试器时,我可以看到以下内容:
contentFolder.FullName = "E:\\"
Run Code Online (Sandbox Code Playgroud)
然而
reportedContentFolderPath = "\\ReportedContent\\"
Run Code Online (Sandbox Code Playgroud)
为什么Path.Combine砍掉E:\?
Jon*_*eet 31
你有一个领先的斜线@"\ReportedContent\".你不想要那个(或我怀疑的尾随) - 试试吧:
string reportedContentFolderPath =
Path.Combine(contentFolder.FullName.ToString(), "ReportedContent");
Run Code Online (Sandbox Code Playgroud)
从文档:
如果
path2不包含根(例如,如果path2不以分隔符或驱动器规范开头),则结果是两个路径的串联,以及插入的分隔符.如果path2包含root,path2则返回.
在你的情况下,path2 确实包含一个根,所以它返回时没有看到path1.
它在方法文档中解释:
如果path2不包含根(例如,如果path2不以分隔符或驱动器规范开头),则结果是两个路径的串联,以及插入的分隔符.如果path2包含根,则返回path2.
我建议你仔细阅读以了解所有可能的组合是如何工作的:Path.Combine方法
| 归档时间: |
|
| 查看次数: |
12627 次 |
| 最近记录: |