Является ли это ошибкой в ​​DirectoryInfo.GetDirectories(строка searchPattern)?

При вызове DirectoryInfo.GetDirectories( "." ) в экземпляре класса 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, возвращенный из этой функции, фактически существует.... right?!

Я декомпилировал класс с помощью .NET Reflector, но это приводит к этому методу

internal static string[] InternalGetFileDirectoryNames(string path, string userPathOriginal, string searchPattern, bool includeFiles, bool includeDirs, SearchOption searchOption)"

Что такое BEAST, и мне не хочется ходить по логике в моей голове. Это явно ошибка IMHO.

FYI - "*" работает так, как ожидалось, прежде чем кто-то спросит.

Ответ 1

Я могу подтвердить, что вы говорите, и не может найти рационального объяснения, поэтому я голосую BUG.

Я так думаю, я отправил его в Microsoft