C# 这是DirectoryInfo.GetDirectory(字符串搜索模式)中的错误吗?

C# 这是DirectoryInfo.GetDirectory(字符串搜索模式)中的错误吗?,c#,.net,C#,.net,调用指向有效文件夹(不包括驱动器根目录)的DirectoryInfo类的实例时,结果是一个DirectoryInfo数组,其第一个(也是唯一一个)元素指向一个名为与其自身相同的无效目录,位于其下方 例如: static void Main(string[] args) { DirectoryInfo di = new DirectoryInfo("c:\\temp"); DirectoryInfo[] dis = di.GetDirectories("."); Conso

调用指向有效文件夹(不包括驱动器根目录)的DirectoryInfo类的实例时,结果是一个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对象实际上都存在。。。。对吧

我使用.NETReflector反编译了这个类,但它导致了这种方法

internal static string[] InternalGetFileDirectoryNames(string path, string userPathOriginal, string searchPattern, bool includeFiles, bool includeDirs, SearchOption searchOption)"
这是一个野兽,我不想在脑子里重复逻辑。这显然是一个错误


仅供参考-在有人询问之前,“*”按预期工作。

我可以确认你说的话,但看不到任何合理的解释,所以我投票给BUG


我也这么认为,我对微软

的帮助中提到的有趣之处表示感谢。。但不是,你说得很对。然而,这不是一件“一直都是这样”的事情吗?每个人都会过滤掉这些信息。和。。目录列表?@ScottCher在DOS中如果我执行“dir”。在目录中,我不会得到任何不存在的结果。我只得到“.”和“.”(两者都存在)