private static GetSubFiles ( List |
||
fileList | List |
|
dir | ||
return | void |
private static void GetSubFiles(List <FileInfo> fileList, DirectoryInfo dir) { FileInfo[] filesInfo = dir.GetFiles(); foreach (FileInfo file in filesInfo) { if (excludeExtensions.Contains(file.Extension.ToLower())) { continue; } fileList.Add(file); } DirectoryInfo[] folders = dir.GetDirectories(); foreach (DirectoryInfo folder in folders) { if (excludeFolders.Contains(folder.Name.ToLower()) || folder.Name.StartsWith("_")) { continue; } SourceModel.GetSubFiles(fileList, folder); } }
public static List <FileInfo> GetFiles(string url, bool download) { var list = new List <FileInfo>(); var match = SourceModel.example_RE.Match(url); if (!match.Success) { return(list); } var area = match.Groups[1].Value; var controller = match.Groups[2].Value; string path = HttpContext.Current.Server.MapPath(ExamplesModel.ExamplesRoot + area); list.Add(new FileInfo(string.Concat(path, "/Controllers/", controller, "Controller.cs"))); var model = string.Concat(path, "/Models/", controller, "Model.cs"); if (File.Exists(model)) { list.Add(new FileInfo(model)); } model = path + "/Models/SharedModel.cs"; if (File.Exists(model)) { list.Add(new FileInfo(model)); } DirectoryInfo viewFolder = new DirectoryInfo(string.Concat(path, "/Views/", controller)); FileInfo[] filesInfo = viewFolder.GetFiles(); int dIndex = 0; int len = list.Count; for (int ind = 0; ind < filesInfo.Length; ind++) { var fileInfo = filesInfo[ind]; if (Path.GetFileNameWithoutExtension(fileInfo.Name).ToLowerInvariant() == "index") { dIndex = ind + len; } if (excludeList.Contains(fileInfo.Name) || (!download && excludeExtensions.Contains(fileInfo.Extension.ToLowerInvariant()))) { continue; } list.Add(fileInfo); } if (download) { foreach (DirectoryInfo folder in viewFolder.GetDirectories()) { if (excludeFolders.Contains(folder.Name.ToLower()) || folder.Name.StartsWith("_")) { continue; } SourceModel.GetSubFiles(list, folder); } } if (dIndex > 0) { FileInfo fi = list[dIndex]; list.RemoveAt(dIndex); list.Insert(0, fi); } return(list); }