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

标签 c# windows

基本上,我有这段代码:

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

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

的文件

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

我在命令提示符下用 dir 试了一下,它也匹配那些文件。为什么?

编辑:

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

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

最佳答案

msdn指出

"Because this method checks against file names with both the 8.3 file name format and the long file name format, a search pattern similar to "*1*.txt" may return unexpected file names. For example, using a search pattern of "*1*.txt" will return "longfilename.txt" because the equivalent 8.3 file name format would be "longf~1.txt"."

会不会是这个原因?

关于c# - 为什么 DirectoryInfo.GetFiles() 匹配与掩码不匹配的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786278/

相关文章:

c# - 使用 C# 结构体在域模型中循环引用

c# - Accord.NET Framework 中的多个绘图

c# - 如何在对驻留在不同程序集中的方法执行 JMP 指令时获取正确的方法引用

node.js - Node 错误_xdl(...).ProjectUtils.readConfigJsonAsync不是函数

c# - 如何为 ASP.NET MVC 2 创建自定义成员资格提供程序?

C# 这是 ReadOnlySpan<T> 的正确用法吗?

windows - 如何安全正确地创建 Windows 剪贴板的备份?

windows - Jenkins 权限被拒绝 - 如何更改 IntelliJ Idea 和 Windows 的权限?

Windows Server 2008 Cdonts 问题

java - 从 32 位 java 运行 64 位 Windows 命令