在指向有效文件夹(不包括驱动器根目录)的DirectoryInfo类实例上调用DirectoryInfo.GetDirectories(".")时,结果是一个DirectoryInfo数组,其第一个(也是唯一的)元素指向名为相同的无效目录就像它本身一样,低于它自己。
例如:
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)"
这是一个野兽,我不想走在脑海中的逻辑。这显然是一个错误恕我直言。
仅供参考 - 在某人要求之前,“*”按预期工作。