Usted puede obtener todos los archivos, luego filtrar la matriz:
public static IEnumerable<FileInfo> GetFilesByExtensions(this DirectoryInfo dirInfo, params string[] extensions)
{
var allowedExtensions = new HashSet<string>(extensions, StringComparer.OrdinalIgnoreCase);
return dirInfo.EnumerateFiles()
.Where(f => allowedExtensions.Contains(f.Extension));
}
Esta voluntad ser (marginalmente) más rápido que cualquier otro answe aquí.
En .Net 3.5, reemplace EnumerateFiles
con GetFiles
(que es más lento).
Y utilizar de esta manera:
var files = new DirectoryInfo(...).GetFilesByExtensions(".jpg", ".mov", ".gif", ".mp4");
supongo que quiere decir "más de una extensión" ... no funciona con dos o bien –
Yeup no funciona bien para dos – rd42
BTW, ¿sabe usted que GetFiles no está relacionado con C#, sino solo con .NET? –