GetSubFiles() private static method

private static GetSubFiles ( List fileList, DirectoryInfo dir ) : void
fileList List
dir System.IO.DirectoryInfo
return void
Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }