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)); }
// 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); }
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); }