我读过关于Directory.GetPath
搜索模式的文档以及它是如何使用的,因为我注意到*.dll
找到test.dll
和test.dll_20170206
。这种行为是记录对Directory.GetFiles感到困惑
现在,我有一个程序,基于用户配置的掩码列出文件夹中的文件并进行处理。我注意到像*.txt
这样的面具如预期的那样导致了上述“问题”。
然而,面具fixedname.txt
也导致fixedname.txt_20170206
等,以出现在列表中,即使文档状态当您使用星号通配符的是searchPattern如“*这只发生
。 txt“
这是为什么?
PS:我刚才检查:文件掩码更改为fixednam?.txt
没有帮助,即使文档说
当您使用问号通配符,这种方法只返回匹配指定文件扩展名的文件。例如,在目录中给定两个文件“file1.txt”和“file1.txtother”,“file?.txt”的搜索模式只返回第一个文件,而搜索模式“file * .txt”返回这两个文件。
我可以用'*'前缀来重现这个问题,但不能用'?' - '?????????。txt'只能匹配'fixedname.txt' –
我不能重现这个。尝试这2行:'var a = Directory.GetFiles(@“c:\ temp”,“fixedname.txt”);'和'var a = Directory.GetFiles(@“c:\ temp”,“fixednam ?. txt“);'他们只是返回一个文件,而不是'fixedname.txt_20170206' – Pikoh
有趣......我用文件''Rename-Plan.txt”'和''Rename-Plan.txt12“'试过了你的问题。 '' - “'模式与没有它的模式之间有区别。 ''Rename-Plan.txt''返回1,''Rename - *。txt''return 1,''Rename * .txt''返回2,''Rename?Plan.txt''返回1,''重命名????? txt“'返回2.你得到的模式我猜 – grek40