Не получается исключить папки из поиска
Список папок которые нужно обойти при поиске (не показывать их)
public static readonly string[] BypassDir = new string[]
{
"Microsoft", "History", "Temp",
};
Метод которым ищу файлы с "обходом"
public static List<string> GetAllFiles(string path, string pattern, SearchOption so = SearchOption.AllDirectories)
{
var files = new List<string>();
try
{
foreach (string file in Directory.EnumerateFiles(path, pattern, so))
{
var fileInfo = new FileInfo(file);
files.Add(file);
}
foreach (string fl in Directory.EnumerateDirectories(path, "*", so))
{
if (!BypassDir.Contains(fl, StringComparer.OrdinalIgnoreCase))
//if (!BypassDir.Any(ext => ext != Path.GetExtension(fl)))
{
files.AddRange(GetAllFiles(fl, pattern, so));
}
}
}
catch { }
return files;
}
Но при сканирование всё ровно проходит папки, как исключить их правильно?
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
if (!BypassDir.Contains(fl, StringComparer.OrdinalIgnoreCase))
if (!BypassDir.Contains(Path.GetFileName(fl), StringComparer.OrdinalIgnoreCase))
А вообще, лучше сделать BypassDir не массивом, а Setом.