想要使用C#列出文件夹中的所有图像文件

Kim*_*ho6 4 c#

可能重复:
具有多个扩展的GetFiles

是否像GetFiles这样的函数需要多于1个文件类型

DirectoryInfo di = new DirectoryInfo("c:/inetpub/wwwroot/demos");
FileInfo[] rgFiles = di.GetFiles("*.bmp, *.jpg, etc");
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 9

AFAIK,这不是直接可能的.

相反,您可以获取每个文件,然后过滤数组:

HashSet<string> allowedExtensions = new HashSet<string>(extensionArray, StringComparer.OrdinalIgnoreCase);
FileInfo[] files = Array.FindAll(dirInfo.GetFiles(), f => allowedExtensions.Contains(f.Extension));
Run Code Online (Sandbox Code Playgroud)

extensionArray必须.在每次扩展之前包含,但不区分大小写.


Cod*_*uth 5

从来没听说过.我实现了同样的问题:

DirectoryInfo di = new DirectoryInfo("c:/inetpub/wwwroot/demos");
FileInfo[] rgFiles = di.GetFiles("*.bmp")
    .Union(di.GetFiles("*.jpg"))
    .Union(di.GetFiles("etc"))
    .ToArray();
Run Code Online (Sandbox Code Playgroud)

请注意,这需要System.Linq命名空间.

  • 这是低效的. (3认同)