Я просто наткнулся на недокументированное поведение методов GetFiles
в System.IO.Directory
.
Всякий раз, когда параметр searchPattern
, переданный методу, содержит зарезервированное имя устройства Windows, например "nul.*"
или "aux.bmp"
, метод возвращает массив, содержащий имя несуществующего файла, например C:\Users\ft1\nul
или D:\aux
и т.д.
Интересно, имеют ли эти имена устройства особый смысл в этом контексте, например "." или "..", или если это всего лишь своего рода ошибка. Во всяком случае, это все еще кажется довольно странным. Например, этот фрагмент кода в С#:
string[] fileNames = Directory.GetFiles(@"C:\D:\..\..\...\", "con.txt");
foreach (string fileName in fileNames) Console.WriteLine(fileName);
печатает
C:\D:\..\..\...\con
Любые подсказки?