private void load(TreeNodeEx node)
 {
     if (node.Nodes.ContainsKey("DUMMY"))
     {
         node.Nodes.Clear();
         switch (node.NodeType)
         {
             case NodeType.ROOT:
                 string[] drivesList = Environment.GetLogicalDrives();
                 for (int i = 0; i < drivesList.Length; i++)
                 {
                     TreeNodeEx dri = new TreeNodeEx(drivesList[i].ToUpperInvariant(),NodeType.DRIVES);
                     dri.Tag = drivesList[i].ToUpperInvariant();
                     dri.ImageIndex = 0;
                     dri.SelectedImageIndex = 0;
                     node.Nodes.Add(dri);
                 }
                 break;
             case NodeType.FOLDER:
             case NodeType.DRIVES:
                 try
                 {
                     DirectoryInfo dirInfo = new DirectoryInfo((string)node.Tag);
                     foreach (FileSystemInfo di in dirInfo.GetFileSystemInfos())
                     {
                         try
                         {
                             if (di is DirectoryInfo)
                             {
                                 TreeNodeEx newFolderNode = new TreeNodeEx(di.Name,NodeType.FOLDER);
                                 newFolderNode.Tag = (string)di.FullName;
                                 newFolderNode.ImageIndex = 1;
                                 newFolderNode.SelectedImageIndex = 1;
                                 node.Nodes.Add(newFolderNode);
                             }
                             else if (di is FileInfo)
                             {
                                 TreeNodeEx fileNode = new TreeNodeEx(di.Name, NodeType.FILE);
                                 fileNode.Tag = (string)di.FullName;
                                 fileNode.ImageIndex = 2;
                                 fileNode.SelectedImageIndex = 2;
                                 fileNode.Nodes.Clear();
                                 node.Nodes.Add(fileNode);
                             }
                         }
                         catch
                         {
                         }
                     }
                 }
                 catch
                 {
                 }
                 break;
         }
     }
 }
 private void init()
 {
     this.ImageList = this.imageList1;
     this.Nodes.Clear();
     TreeNodeEx Root = new TreeNodeEx("桌面",NodeType.ROOT);
     Root.ImageIndex = 3;
     Root.SelectedImageIndex = 3;
     CurrentNode = Root;
     this.Nodes.Add(Root);
 }