我在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上试过这个。