Мне нужен кто-то, чтобы указать мне правильное направление.
Цель:
Вернуть список Имена папок по пути, содержащему строку в их имени. Например: путь имеет каталог с именами Pictures_New и Videos_New. Я ищу строку "Pictures_" и "Videos _".
Все это работает с одним строковым параметром, передаваемым в качестве строки поиска. Моя проблема - заставить его работать с несколькими фильтрами. Я знаю, что это легко сделать с помощью имен и расширений файлов.
Это передается GetFolders()
:
string[] filterStrings = { "Pictures_", "Videos_" }
Остальная часть моего кода:
public IEnumerable<string> GetFolders(string path, string[] filterStrings, SearchOption searchOption = SearchOption.AllDirectories)
{
IEnumerable<string> folders = Directory.EnumerateDirectories(path, "Pictures_*.*", searchOption);
var resultFolders = new List<string>();
if(filterStrings.Length > 0)
{
foreach (var foldername in folders)
{
string folderName = Path.GetFileName(Path.GetDirectoryName(foldername));
if (string.IsNullOrEmpty(folderName) || Array.IndexOf(filterStrings, "*" + folderName) < 0)
{
// This leaves us only with the Directory names. No paths.
var b = (foldername.Substring(foldername.LastIndexOf(@"\") + 1));
resultFolders.Add(b);
}
}
}
return resultFolders;
}