private void ProcessFolder(string folder, Func<string, bool> assemblyNameCondition, Func<string, bool> assemblyVersionCondition, IList<Assembly> assemblyList)
{
// apply condition here
foreach (string file in Directory.GetFiles(folder).Where(assemblyNameCondition))
{
this.ProcessFile(file, assemblyVersionCondition, assemblyList);
}
foreach (string subFolder in Directory.GetDirectories(folder))
{
this.ProcessFolder(subFolder, assemblyNameCondition, assemblyVersionCondition, assemblyList);
}
}