Example #1
0
        public IActionResult GetDirectories()
        {
            if (!string.IsNullOrEmpty(HostingHelper.MainAppDirectory))
            {
                var directory = new DirectoryInfo(HostingHelper.MainAppDirectory);
                if (directory.Exists)
                {
                    var tree = new JsTreeDataModel
                    {
                        Text   = directory.Name,
                        Id     = directory.FullName,
                        Opened = "true",
                        Type   = "root"
                    };

                    PathUtility.TreeList = new List <JsTreeDataModel> {
                        tree
                    };
                    return(Json(PathUtility.WalkDirectoryTree(directory, tree)));
                }
            }

            var layoutRoot = new List <JsTreeDataModel> {
                new JsTreeDataModel
                {
                    Text   = HostingConstants.LayoutPageFullName,
                    Id     = HostingConstants.LayoutPageFullName,
                    Opened = "true",
                    Type   = "root"
                }
            };

            return(Json(layoutRoot));
        }
Example #2
0
        // TODO Cache
        public static List <JsTreeDataModel> WalkDirectoryTree(DirectoryInfo directory, JsTreeDataModel tree)
        {
            FileInfo[]      files   = null;
            DirectoryInfo[] subDirs = null;

            files = directory.GetFiles("*.*");

            if (files != null)
            {
                foreach (FileInfo fi in files)
                {
                    var extension = fi.Extension.Replace(".", "-");
                    tree.Children.Add(new JsTreeDataModel
                    {
                        Text = fi.Name,
                        Id   = fi.FullName,
                        Icon = "file file" + extension,
                        Type = "file"
                    });
                }
            }

            subDirs = directory.GetDirectories();

            foreach (DirectoryInfo dirInfo in subDirs)
            {
                var subDirectory = new JsTreeDataModel
                {
                    Text   = dirInfo.Name,
                    Id     = dirInfo.FullName,
                    Opened = "false",
                    Type   = "root"
                };

                if (!_excludeDirs.Contains(dirInfo.Name))
                {
                    tree.Children.Add(subDirectory);
                    // Resursive call for subdirectory.
                    WalkDirectoryTree(dirInfo, subDirectory);
                }
            }

            return(TreeList);
        }
Example #3
0
        public IActionResult FileTree()
        {
            var tree = new JsTreeDataModel
            {
                Text   = "Files",
                Id     = "#",
                Opened = "true",
                Type   = "root"
            };

            DirectoryInfo directoryInfo = new DirectoryInfo(Path.Combine(_hostingEnvironment.WebRootPath, "configs"));

            PathUtility.WalkDirectoryTree(directoryInfo, tree);
            var list = new List <JsTreeDataModel> {
                tree
            };

            return(Json(list));
        }
        public static List <JsTreeDataModel> WalkDirectoryTree(DirectoryInfo directory, JsTreeDataModel tree)
        {
            var treeList = new List <JsTreeDataModel>();

            FileInfo[] files = directory.GetFiles("*.*");

            if (files != null)
            {
                foreach (FileInfo fi in files)
                {
                    var extension = fi.Extension.Replace(".", "-");
                    tree.Children.Add(new JsTreeDataModel
                    {
                        Text = fi.Name,
                        Id   = fi.Name,
                        Icon = "file file-js",
                        Type = "file"
                    });
                }
            }

            return(treeList);
        }