private static IEnumerable<FileInfo> GetFiles(DirectoryInfo directory, string[] excludedDirectories)
{
return directory.GetFiles("*", SearchOption.TopDirectoryOnly)
.Concat(directory.GetDirectories()
.Where(x => !excludedDirectories.Select(y => y.ToLower()).Contains(x.Name.ToLower()))
.SelectMany(x => GetFiles(x, excludedDirectories)));
}