当在指向有效文件夹(不包括驱动器根目录)的DirectoryInfo类实例上调用 DirectoryInfo.GetDirectories(".")时,结果是一个DirectoryInfo数组,其第一个(也是唯一的)元素指向一个无效目录,该目录与自身同名,在自身下方。
例如:
打印一个不存在的目录:
我理解在Windows中,“.”代表当前目录。如果该方法返回“c:\temp”,那么这可能对我是可以接受的,但是返回具有相同名称的虚假子目录似乎是完全错误的行为。
我应该能够断言从此函数返回的任何DirectoryInfo对象实际上都存在…… 对吧?!
我使用.NET Reflector反编译了该类,但它导致了这个方法。
例如:
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo("c:\\temp");
DirectoryInfo[] dis = di.GetDirectories(".");
Console.WriteLine(dis[0].FullName);
}
打印一个不存在的目录:
c:\temp\temp
我理解在Windows中,“.”代表当前目录。如果该方法返回“c:\temp”,那么这可能对我是可以接受的,但是返回具有相同名称的虚假子目录似乎是完全错误的行为。
我应该能够断言从此函数返回的任何DirectoryInfo对象实际上都存在…… 对吧?!
我使用.NET Reflector反编译了该类,但它导致了这个方法。
internal static string[] InternalGetFileDirectoryNames(string path, string userPathOriginal, string searchPattern, bool includeFiles, bool includeDirs, SearchOption searchOption)"
这是一个巨兽,我不想在脑海中思考它的逻辑。 我认为这显然是一个错误。
顺便说一下 - "*"可以正常工作,以防有人问。