I use below code for searching files in a directory(& it's sub-directories) with a specific extension:
Directory.EnumerateFiles(dir, Path.GetFileNameWithoutExtension(item) + ".ext1" , SearchOption.AllDirectories);
Now, I can have file with different extensions like ".ext1",".ext2", ".ext3". I would like to combine these extensions in my search pattern something like below:
Directory.EnumerateFiles(dir, Path.GetFileNameWithoutExtension(item) + ".ext1||.ext2" , SearchOption.AllDirectories);
Suggestions please?
You could use a custom method that splits the pattern string and then calls EnumerateFiles:
public static IEnumerable<string> MultiEnumerateFiles(string path, string patterns)
{
foreach (var pattern in patterns.Split('|'))
foreach (var file in Directory.EnumerateFiles(path, pattern, SearchOption.AllDirectories))
yield return file;
}
By using yield you get the same lazy-evaluation behavior as with the original EnumerateFiles.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With