我刚刚偶然发现了 System.IO.Directory
中的 GetFiles
方法的一个未记录行为。
每当传递给该方法的 searchPattern
参数包含一个保留的 Windows 设备名称,例如 "nul.*"
或 "aux.bmp"
时,该方法将返回一个包含不存在文件名的数组,如 C:\Users\ft1\nul
或 D:\aux
。
我想知道这些设备名称在这个上下文中是否有特殊含义,就像“.”或“..”一样,还是这只是一种 bug。无论如何,这似乎仍然非常奇怪。 例如,以下 C# 代码片段:
string[] fileNames = Directory.GetFiles(@"C:\D:\..\..\...\", "con.txt");
foreach (string fileName in fileNames) Console.WriteLine(fileName);
打印
C:\D:\..\..\...\con
有线索吗?