protected virtual void TreeViewInitialize(string path) { string[] ele = path.Split('\\'); TreeViewItemUI target = null; TreeViewItemUI desktop = new TreeViewItemUI(); desktop.Header = "Desktop"; desktop.Tag = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); TreeViewItemUI mycom = new TreeViewItemUI(); mycom.Header = "MyComputer"; //mycom.Tag = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); mycom.IsScaned = true; desktop.Items.Add(mycom); foreach (var d in Directory.GetLogicalDrives()) { TreeViewItemUI t = new TreeViewItemUI() { Header = d }; t.Tag = d; if (char.ToUpper(ele[0][0]) == char.ToUpper(d[0])) { target = t; } mycom.Items.Add(t); } if (target != null) { string fullpath = (string)target.Header; this.MakeTree(target, fullpath); for (int i = 1; i < ele.Length; i++) { for (int j = 0; j < target.Items.Count; j++) { if (ele[i].Equals((string)((TreeViewItemUI)target.Items[j]).Header)) { fullpath = System.IO.Path.Combine(fullpath, ele[i]); this.MakeTree((TreeViewItemUI)target.Items[j], fullpath); target = (TreeViewItemUI)target.Items[j]; break; } } } } this.tvControl.Items.Add(desktop); this.tvControl.SelectedItemChanged += TreeSelectedItemChanged; }
protected virtual void MakeTree(TreeViewItemUI parent, string path) { try { foreach (var ele in Directory.GetDirectories(path)) { TreeViewItemUI t = new TreeViewItemUI() { Header = System.IO.Path.GetFileName(ele) }; t.Tag = System.IO.Path.Combine(path, ele); parent.Items.Add(t); } } catch (UnauthorizedAccessException ex) { MessageBox.Show("アクセスできません", "Unauthorized", MessageBoxButton.OK, MessageBoxImage.Error); } parent.IsScaned = true; }