我有一个看起来像这样的目录:
C:\Users\me\Projects\
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我将该路径附加到给定的项目名称:
C:\Users\me\Projects\myProject
Run Code Online (Sandbox Code Playgroud)
之后,我希望能够将其传递给方法.在这个方法里面我也想使用项目名称.解析路径字符串以获取最后一个文件夹名称的最佳方法是什么?
我知道解决方法是将路径和项目名称传递给函数,但我希望我可以将它限制为一个参数.
我被这个System.IO.Directory.GetParent方法的一个非常奇怪的行为击中了脸:
string path1 = @"C:\foo\bar";
DirectoryInfo parent1 = Directory.GetParent(path1);
Console.WriteLine (parent1.FullName); // Prints C:\foo, as expected
// Notice the extra backslash. It should still refer to the same location, right ?
string path2 = @"C:\foo\bar\";
DirectoryInfo parent2 = Directory.GetParent(path2);
Console.WriteLine (parent2.FullName); // Prints C:\foo\bar !!!
Run Code Online (Sandbox Code Playgroud)
我认为它是一个错误,但这种方法自1.0以来一直存在,所以我想现在已经检测到了.另一方面,如果它是按照设计的,我想不出对这种设计的合理解释......
你怎么看 ?这是一个错误吗?如果没有,你如何解释这种行为?