带有通配符的.NET DirectoryInfo.GetFiles在不同的驱动器上有所不同

时间:2017-11-20 21:22:52

标签: c# .net windows winapi ntfs

我在DirectoryInfo.GetFiles(“*。xls”)中遇到了一个非常奇怪的错误。

我在驱动器C上有一个目录zzz,它包含2个文件:File1.xls和File2.xlsx。

当我调用GetFiles(“*。xls”)时,它会返回2个文件,如文档中所述: https://msdn.microsoft.com/ru-ru/library/ms143327(v=vs.110).aspx

它们具有完全相同的通配符示例。我已经阅读了这种向后兼容性“智能解决方案”,以使3个字母的扩展与其他扩展的行为不同。

但是,当我为驱动器D(包含所有文件的副本)上的相同文件夹调用它时,它返回1个文件!我不明白为什么。

C和D都被格式化为NTFS。驱动器D是由笔记本电脑供应商(也格式化为NTFS)在同一硬盘上创建的恢复驱动器。我能看到的唯一区别是D不是主逻辑驱动器。

当我在FAT32格式的闪存驱动器和NTFS格式的外置硬盘上尝试相同时,它会返回2个文件。

其他人可以重现这个吗?我做了一个解决方法(使用GetFiles()然后按扩展名过滤)有帮助,但如果这是一个.net错误,Windows bug或其他东西,那就很有趣。

我在Windows 10 x64和.net 4.5.2上试过这个。

0 个答案:

没有答案