private static ItemProviderResult <FileItem> GetRootItems() { IEnumerable <FileItem> rootItems = null; string path = null; Application.Current.Dispatcher.Invoke(() => { var compi = new Shell32.Shell().NameSpace(ShellSpecialFolderConstants.ssfDRIVES); rootItems = compi.Items().Cast <FolderItem2>() //.Where(f => Directory.Exists(f.Path)) .Select(i => new FileItem(i.Path, i.IsFolder ? ItemType.Container : ItemType.Item, i.Name)); path = compi.Title; return(new ItemProviderResult <FileItem> { Items = rootItems, PathName = path }); }); return(new ItemProviderResult <FileItem> { Items = rootItems, PathName = path }); }
private static Func <TreeViewItem> GetMyComputerItem() { return(() => { var myComputer = new TreeViewItem(@"", ItemType.Container, Constants.RootName) { IsExpanded = true }; var compi = new Shell32.Shell().NameSpace(ShellSpecialFolderConstants.ssfDRIVES); var rootItems = compi.Items().Cast <FolderItem2>() .Where(f => Directory.Exists(f.Path)) .Select(i => new TreeViewItem(i.Path, i.IsFolder ? ItemType.Container : ItemType.Item, i.Name)); foreach (var item in rootItems) { myComputer.Children.Add(item); } return myComputer; }); }