public static void PopulateSystemTreeNode(TreeView tv) { //DirectoryInfo info = new DirectoryInfo(); string[] drives = Environment.GetLogicalDrives(); for (int i = 0; i < drives.Length; i++) { DirectoryInfo info = new DirectoryInfo(drives[i]); CustomTreeNode rootNode; if (info.Exists && (info.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly) { rootNode = new CustomTreeNode(info.Name); rootNode.Tag = info; rootNode.ImageIndex = 0; rootNode.SelectedImageIndex = 0; tv.Nodes.Add(rootNode); } } //tv.Sort(); }
public static void NodeMouseEvent(TreeNode eventNode) { CustomTreeNode newSelected = (CustomTreeNode)eventNode; if (!newSelected.clicked) { newSelected.clicked = true; if (newSelected.Tag.GetType() == typeof(DirectoryInfo)) { DirectoryInfo info = (DirectoryInfo)newSelected.Tag; foreach (DirectoryInfo dir in info.GetDirectories()) { if ((dir.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden) { CustomTreeNode node; node = new CustomTreeNode(dir.Name); node.Tag = dir; node.ImageIndex = 1; node.SelectedImageIndex = 1; eventNode.Nodes.Add(node); } } foreach (FileInfo file in info.GetFiles()) { CustomTreeNode node; node = new CustomTreeNode(file.Name); node.Tag = file; node.ImageIndex = 4; node.SelectedImageIndex = 4; eventNode.Nodes.Add(node); } newSelected.Expand(); } } }