System.IOUtils.TDirectory.GetParent奇怪的行为?

时间:2016-02-16 10:16:21

标签: delphi

GetParent('c:\1\2\')的结果是'c:\1\2'

GetParent('c:\1\2')的结果是'c:\1'

这是正常/预期的行为吗?如果是,它背后的逻辑是什么?

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”之后。