請考慮這樣一個有些實施:
public static class Program
{
public static void Main()
{
var directoryPaths = new List<string>
{
@"C:\root\path_1",
@"C:\root\path_2",
@"C:\root\path_3"
// …
};
var searchPatterns = new List<string>
{
"*.jpg",
"*.gif"
};
var filePaths = directoryPaths
.SelectMany(directoryPath =>
EnumerateFiles(directoryPath, searchPatterns, SearchOption.AllDirectories))
.ToList()
.AsReadOnly();
// …
}
private static IEnumerable<string> EnumerateFiles(
string path,
IEnumerable<string> searchPatterns,
SearchOption searchOption)
{
var filePaths = searchPatterns.SelectMany(
searchPattern => Directory.EnumerateFiles(path, searchPattern, searchOption));
return filePaths;
}
}
在C搜索:\流派\岩石和C:\類型\金屬和合並結果?雖然我不確定gifs && jpgs會不會用於音樂;) – Icepickle
@Icepickle也許OP正在尋找專輯封面和/或封面! :-) –
由於搜索模式不允許使用正則表達式或任何其他花哨的東西,所以您只需進行2次搜索或者有一個where條件,如'(s =>(s.ToLower()。Contains(「rock 「)|| s.ToLower()。Contains(」metal「))&&(s.EndsWith(」。jpg「)|| s.EndsWith(」.gif「))'。 – Adwaenyth