GetParent('c:\1\2\')
的结果是'c:\1\2'
。
GetParent('c:\1\2')
的结果是'c:\1'
。
这是正常/预期的行为吗?如果是,它背后的逻辑是什么?
答案 0 :(得分:4)
这种行为看起来有点奇怪,但它是设计的。此类以.net类Directory
为模型。 Directory.GetParent
的{{3}}说:
此方法返回的字符串包含路径中的所有字符,但不包括最后一个DirectorySeparatorChar或AltDirectorySeparatorChar。例如,将路径“C:\ Directory \ SubDirectory \ test.txt”传递给GetParent将返回“C:\ Directory \ SubDirectory”。传递“C:\ Directory \ SubDirectory”返回“C:\ Directory”。但是,传递“C:\ Directory \ SubDirectory \”会返回“C:\ Directory \ SubDirectory”,因为结束目录分隔符位于“SubDirectory”之后。