为什么DirectoryInfo.GetFiles()匹配与掩码不匹配的文件?

sco*_*ttm 7 c# windows

基本上,我有这个代码:

DirectoryInfo dir = new DirectoryInfo(@"\\MYNETWORK11\ABCDEFG\ABCDEFGHIJKL\00806\");
FileInfo[] files = dir.GetFiles("200810*");
Run Code Online (Sandbox Code Playgroud)

我希望它匹配任何以200810开头的文件.但是,它匹配的文件名为

20070618_00806.bak和20070817_00806.bak(星号不在文件名中,这是我可以包含下划线的唯一方法)

我在命令提示符下使用dir尝试了它,它也匹配这些文件.为什么?

编辑:

也许使用C:作为例子不是一件好事.我实际查询的目录是网络共享\\ MYNETWORK11\ABCDEFG\ABCDEFGHIJKL\00806 \

如果检查短名称与它有关,20070817_00806.bak不会是200708~1.bak吗?那也不匹配

Dea*_*ean 14

msdn说明

"因为此方法使用8.3文件名格式和长文件名格式检查文件名,所以类似于" *1*.txt" 的搜索模式可能会返回意外的文件名.例如,使用" *1*.txt" 的搜索模式将返回" longfilename.txt",因为等效的8.3文件名格式为" longf~1.txt"."

这可能是原因吗?


Joe*_*ite 6

从命令行尝试这个:

dir /x 200810*
Run Code Online (Sandbox Code Playgroud)

"/ x"将使其显示短文件名以及长文件名.这可以让你看看短文件名是否真的以"200810"开头.