System.IO.Directory搜索模式无法按预期工作

时间:2011-10-30 14:03:29

标签: c# .net

我正在尝试使用以下语句检索jpegjpg个文件:

string[] files = Directory.GetFiles(someDirectoryPath, "*.jp?g");

MSDN的docs for System.IO.Directory.GetFiles(string, string)表示?表示“完全为零或一个字符。”但上述块选择jpeg个文件但省略了jpg个文件。

我目前正在使用过度宽松的搜索模式"*.jp*g"来实现我的结果,但它因为它起作用而使我的大脑皱纹。

2 个答案:

答案 0 :(得分:4)

来自您关联的文档:

  

文件扩展名为一,二或三个以上字符的searchPattern仅返回扩展名与searchPattern中指定的文件扩展名完全匹配的文件。

我怀疑这是问题所在。说实话,我可能会获取所有文件,然后在代码中对它们进行后处理 - 这将使代码更容易推理,而不是依赖于Windows路径处理的怪异。

答案 1 :(得分:0)

您可以使用"*"作为模式并自行处理结果或使用

string[] files = Directory.GetFiles(someDirectoryPath, "*.jpg").Union (Directory.GetFiles(someDirectoryPath, "*.jpeg")).ToArray();

根据the Docs,您使用的模式只返回扩展名为4个字符的文件。

MSDN reference on Union