public void PopulateTree(string dir, FileSystemNodeViewModel node) { if (node.children == null) { node.children = new List<FileSystemNodeViewModel>(); } DirectoryInfo directory = new DirectoryInfo(dir); foreach (DirectoryInfo subDirectory in directory.GetDirectories()) { FileSystemNodeViewModel childNode = new FileSystemNodeViewModel(); childNode.id = subDirectory.FullName; childNode.text = subDirectory.Name.ToString(); childNode.type = "root"; PopulateTree(subDirectory.FullName, childNode); node.children.Add(childNode); } foreach (FileInfo file in directory.GetFiles()) { FileSystemNodeViewModel childNode = new FileSystemNodeViewModel(); childNode.id = file.FullName; childNode.text = file.Name.ToString(); childNode.type = "file"; node.children.Add(childNode); } }
public ActionResult PopulateData() { var dir = Server.MapPath(MainDirectory); var main = new DirectoryInfo(dir); var result = new List<FileSystemNodeViewModel>(); foreach (var item in main.GetDirectories()) { var node = new FileSystemNodeViewModel(); node.text = item.Name; node.id = item.FullName; node.type = "root"; PopulateTree(node.id, node); result.Add(node); } return Json(result, JsonRequestBehavior.AllowGet); }