Get Files of certain extension(s) in C#
To get files of a specific extension in C# you can useDirectory.EnumerateFiles()
method which returns an enumerable collection of full file names that meet specified criteria. Then you can iterate and loop through the enumerable using foreach()
Example
In below example we created a list of extensionext
, this list will be used in lambda expression Where()
to filter to required extensions.using System;
using System.Linq;
using System.Collections.Generic;
using System.IO;
public class Program
{
public static void Main()
{
string dir = @"C:\DIRECTORY_PATH";
var ext = new List<string> { "jpg", "gif", "png" };
var myFiles = Directory.EnumerateFiles(dir, "*.*", SearchOption.AllDirectories)
.Where(s => ext.Contains(Path.GetExtension(s).TrimStart('.').ToLowerInvariant()));
foreach (string currentFile in myFiles)
{
string fileName = currentFile.Substring(dir.Length + 1);
Console.WriteLine(fileName);
}
}
}