private List <BrowserTreeViewItemModel> GetChildrenByPath(string FilePath) { List <BrowserTreeViewItemModel> children = new List <BrowserTreeViewItemModel>(); foreach (var path in Directory.GetDirectories(FilePath)) { // if @path is a folder if (Directory.Exists(@path)) { DirectoryInfo dir = new DirectoryInfo(path); // if this directory is not readonly or hidden if (FileAttributes.Directory == dir.Attributes || dir.Attributes.ToString().Equals("ReadOnly, Directory")) { BrowserTreeViewItemModel model = new BrowserTreeViewItemModel(); model.Text = dir.Name; model.Icon = treeViewIcons["folder"]; model.Path = @path; model.IsFolder = true; children.Add(model); } } } foreach (var path in Directory.GetFiles(FilePath)) { // file if (File.Exists(@path)) { FileInfo file = new FileInfo(@path); //if (file.Extension.Equals(".fbx") || file.Extension.Equals(".png")) { BrowserTreeViewItemModel model = new BrowserTreeViewItemModel(); model.Text = file.Name; if (file.Extension.ToLower().Equals(".dds") || file.Extension.ToLower().Equals(".png") || file.Extension.ToLower().Equals(".jpg") || file.Extension.ToLower().Equals(".tga")) { model.Icon = treeViewIcons["image"]; } else if (file.Extension.ToLower().Equals(".fbx")) { model.Icon = treeViewIcons["mesh"]; } else if (file.Extension.ToLower().Equals(".gmat")) { model.Icon = treeViewIcons["material"]; } else { model.Icon = treeViewIcons["document"]; } model.Path = @path; model.IsFolder = false; children.Add(model); } } } return(children); }
public void LoadBrowser() { String ContentFolder = workDirectory + @"Content\"; if (ContentFolder == null) { MessageBox.Show("ContentFolder is null"); return; } browserTreeView.ItemsSource = null; //browserTreeView.Items.Clear(); List <BrowserTreeViewItemModel> root = new List <BrowserTreeViewItemModel>(); BrowserTreeViewItemModel content = new BrowserTreeViewItemModel(); content.Text = "Content"; content.Icon = treeViewIcons["folder"]; //content.Path = AppDomain.CurrentDomain.BaseDirectory + @"Content\"; content.Path = workDirectory + @"Content\"; content.IsFolder = true; content.Children = GetChildrenByPath(content.Path); root.Add(content); browserTreeView.ItemsSource = root; }
void item_Selected(object sender, RoutedEventArgs e) { TreeViewItem item = e.OriginalSource as TreeViewItem; BrowserTreeViewItemModel model = item.DataContext as BrowserTreeViewItemModel; if (model.IsFolder) { GetFiles(model.Path); } }
void folder_Expanded(object sender, RoutedEventArgs e) { TreeViewItem item = e.OriginalSource as TreeViewItem; BrowserTreeViewItemModel model = item.DataContext as BrowserTreeViewItemModel; foreach (BrowserTreeViewItemModel child in model.Children) { if (child.IsFolder) { child.Children = GetChildrenByPath(child.Path); } } }