搜索时要绕过的文件夹列表(不显示)
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;
}
但是扫描时,一切都顺利通过文件夹,如何正确排除它们?
一般来说,最好不要做
BypassDir阵列,而是做一个Set欧姆。