public static void SearchAllInitInfo(DirectoryInfo dir, Dictionary <string, FileInfo> races, Dictionary <string, RTSColorScheme> dictSchemes) { var files = dir.GetFiles(); foreach (var file in files) { if (file.Extension.ToLower().EndsWith("race")) { races.Add(RTSRaceParser.ParseName(file), file); } else if (file.Extension.ToLower().EndsWith("scheme")) { object scheme = ZXParser.ParseFile(file.FullName, typeof(RTSColorScheme)); if (scheme != null) { var v = (RTSColorScheme)scheme; dictSchemes.Add(v.Name, v); } } } var dirs = dir.GetDirectories(); foreach (var subDir in dirs) { SearchAllInitInfo(subDir, races, dictSchemes); } }