环境: VS2005 C#         我用Treeview 创建了一颗树,对于其根节点用的是: 
 TreeNode RootNode = new TreeNode(@"我的电脑\C:\Documents and Settings\foven\桌面\File Test", 0, 0);
            treeView1.Nodes.Add(RootNode);    //添加根节点
但是在显示中,根节点会出现“我的电脑\C:\Documents and Settings\foven\桌面\File Test”的全称  我只想要他显示为 “File Test”。
  ps:  他的子节点 我用了 DirectoryInfo 的 name 取到子目录的文件名 但是这个根节点没有name属性啊。   
          大虾们请指教 在线等  谢谢!

解决方案 »

  1.   

     TreeNode RootNode = new TreeNode(System.IO.Path.GetFileName(@"我的电脑\C:\Documents and Settings\foven\桌面\File Test"),0,0);
      

  2.   

    看错了,应该是
    DirectoryInfo di = new DirectoryInfo(@"我的电脑\C:\Documents and Settings\foven\桌面\File Test");
    TreeNode RootNode = new TreeNode(di.Name, 0, 0);
      

  3.   

       还是不对  在改了根目录的路径后  就无法用 GetDirectories 获得其子目录了  我的目的就是要将一个文件夹里面的所有子文件夹全部反映到一颗树上。但是根目录却是一个整条的路径  太难看了。所以想简化一下,忙了几个小时还是不行!
      

  4.   


      public void GetDrive()
            {
                treeView1.ImageList = TreeImageList;            treeView1.BeginUpdate();
                treeView1.Nodes.Clear();            string rootFile = @"我的电脑\C:\Documents and Settings\foven\桌面\File Test";            TreeNode RootNode = new TreeNode(rootFile, 0, 0);
                treeView1.Nodes.Add(RootNode);
                int iImageIndex = 4; int iSelectedIndex = 5;            DirectoryInfo astr = new DirectoryInfo(RootNode.FullPath.Remove(0,5));            DirectoryInfo[] astrDrives = astr.GetDirectories();            foreach (DirectoryInfo str in astrDrives)
                {
                    TreeNode tnDrive = new TreeNode(str.Name, iImageIndex, iSelectedIndex);
                    treeView1.Nodes[0].Nodes.Add(tnDrive);
                    AddDirectories(tnDrive);                treeView1.SelectedNode = tnDrive; 
                }
                treeView1.EndUpdate();        }
            //*************************************************************************************        void AddDirectories(TreeNode tn)
            {
                tn.Nodes.Clear();            string strPath = tn.FullPath;
                strPath = strPath.Remove(0, 5);            //获得当前目录
                DirectoryInfo dirinfo = new DirectoryInfo(strPath);
                DirectoryInfo[] adirinfo;
                try
                {
                    adirinfo = dirinfo.GetDirectories();
                }
                catch
                { return; }            int iImageIndex = 4; int iSelectedIndex = 5;
                foreach (DirectoryInfo di in adirinfo)
                {
                    if (di.Name == "RECYCLER" || di.Name == "RECYCLED" || di.Name == "Recycled")
                    { iImageIndex = 6; iSelectedIndex = 6; }
                    else
                    { iImageIndex = 4; iSelectedIndex = 5; }                TreeNode tnDir = new TreeNode(di.Name, iImageIndex, iSelectedIndex);
                    tn.Nodes.Add(tnDir);
                }
            }
    主要是这2段
      

  5.   


            public void GetDrive()
            {
                treeView1.ImageList = TreeImageList;            treeView1.BeginUpdate();
                treeView1.Nodes.Clear();            DirectoryInfo di = new DirectoryInfo(@"我的电脑\C:\Documents and Settings\foven\桌面\File Test");             TreeNode RootNode = new TreeNode(di.Name, 0, 0);
                treeView1.Nodes.Add(RootNode);
                int iImageIndex = 4; int iSelectedIndex = 5;            DirectoryInfo astr = new DirectoryInfo(di.FullName);//这里不知道你Remove(0,5)是干嘛,我没Remove            DirectoryInfo[] astrDrives = astr.GetDirectories();            foreach (DirectoryInfo str in astrDrives)
                {
                    TreeNode tnDrive = new TreeNode(str.Name, iImageIndex, iSelectedIndex);
                    treeView1.Nodes[0].Nodes.Add(tnDrive);
                    AddDirectories(tnDrive);                treeView1.SelectedNode = tnDrive; 
                }
                treeView1.EndUpdate();        }
            //*************************************************************************************        void AddDirectories(TreeNode tn)
            {
                tn.Nodes.Clear();            string strPath = tn.FullPath;
                strPath = strPath.Remove(0, 5);            //获得当前目录
                DirectoryInfo dirinfo = new DirectoryInfo(strPath);
                DirectoryInfo[] adirinfo;
                try
                {
                    adirinfo = dirinfo.GetDirectories();
                }
                catch
                { return; }            int iImageIndex = 4; int iSelectedIndex = 5;
                foreach (DirectoryInfo di in adirinfo)
                {
                    if (di.Name == "RECYCLER" || di.Name == "RECYCLED" || di.Name == "Recycled")
                    { iImageIndex = 6; iSelectedIndex = 6; }
                    else
                    { iImageIndex = 4; iSelectedIndex = 5; }                TreeNode tnDir = new TreeNode(di.Name, iImageIndex, iSelectedIndex);
                    tn.Nodes.Add(tnDir);
                }
            }