zoukankan      html  css  js  c++  java
  • winform treeview 绑定文件夹和文件

    转载:http://www.cnblogs.com/zhbsh/archive/2011/05/26/2057733.html

    #region  treeview 绑定文件夹和文件
    
            /// <summary>
            /// 根据文件夹绑定到树
            /// </summary>
            /// <param name="treeview"></param>
            /// <param name="FilePath"></param>
            /// <returns></returns>
            public bool SetTreeNoByFilePath(TreeView treeview, string FilePath,ImageList imgs)
            {
                treeview.Nodes.Clear();
                treeview.ImageList = imgs;
                try
                {
                    foreach (DirectoryInfo direc in new DirectoryInfo(FilePath).GetDirectories())
                    {
                        TreeNode tn = new TreeNode(direc.Name);
                        tn.Text = direc.FullName;
                        SetTreeNodeIco(tn, "dir",imgs);
                        tn.Tag = direc.FullName;
                        SetSubDirectoryTreenode(direc, tn,imgs);
                        treeview.Nodes.Add(tn);
                  
    
                    }
                    foreach (FileInfo finfo in new DirectoryInfo(FilePath).GetFiles())
                    {
                        TreeNode temptreenode = new TreeNode(finfo.Name);
                        temptreenode.Tag = finfo.FullName;
                        temptreenode.Text = finfo.Name;
                        SetTreeNodeIco(temptreenode, finfo.Extension, imgs);
                        treeview.Nodes.Add(temptreenode);
                    }
    
     
    
                    return true;
                }
                catch
                {
                    return false;
                    
                    
                }
            
            }
            /// <summary>
            /// 设置子目录的
            /// </summary>
            /// <param name="direc">目录路径</param>
            /// <param name="tn"></param>
            /// <param name="imglist"></param>
            private void SetSubDirectoryTreenode(DirectoryInfo direc, TreeNode tn,ImageList imglist)
            {
                foreach (DirectoryInfo dir in new DirectoryInfo(direc.FullName).GetDirectories())
                {
                    TreeNode temptn = new TreeNode(dir.Name);
                    temptn.Tag = dir.FullName;
                    SetTreeNodeIco(temptn, "dir", imglist);
                    temptn.Text = dir.Name;
                    tn.Nodes.Add(temptn);
                    foreach (FileInfo fileinfo in new DirectoryInfo(dir.FullName).GetFiles())
                    {
                        TreeNode temptreenode = new TreeNode(fileinfo.Name);
                        temptreenode.Tag = fileinfo.FullName;
                        temptreenode.Text = fileinfo.Name;
                        SetTreeNodeIco(temptreenode, fileinfo.Extension,imglist);
                        temptn.Nodes.Add(temptreenode);
                        
                    }
                    SetSubDirectoryTreenode(dir, temptn, imglist);
    
                }
            }
    
            /// <summary>
            /// 为treeview设置小图标
            /// </summary>
            /// <param name="tn"></param>
            /// <param name="strExt"></param>
            /// <param name="imgs"></param>
            private void SetTreeNodeIco(TreeNode tn, string strExt, ImageList imgs)
            {
                string ext = strExt.Replace(".", "");
                if (ext.ToLower() == "dir")
                {
                    tn.ImageIndex = imgs.Images.IndexOfKey("close");
                    tn.SelectedImageIndex = imgs.Images.IndexOfKey("open");
                }
                else if (ext.ToLower() == "doc" || ext.ToLower() == "rar" || ext.ToLower() == "txt")
                {
                    tn.ImageIndex = imgs.Images.IndexOfKey(ext);
                    tn.SelectedImageIndex = imgs.Images.IndexOfKey(ext);
                }
                else
                {
                    tn.ImageIndex = imgs.Images.IndexOfKey("other");
                    tn.SelectedImageIndex = imgs.Images.IndexOfKey("other");
                }
            }
    
     
    
            #endregion
    
    
            #region 只绑定文件夹
    
    
            /// <summary>
            /// 根据文件夹绑定到树
            /// </summary>
            /// <param name="treeview"></param>
            /// <param name="FilePath"></param>
            /// <returns></returns>
            public bool SetTreeNoByFilePath(TreeView treeview, string FilePath)
            {
                treeview.Nodes.Clear();
              
                try
                {
                    foreach (DirectoryInfo direc in new DirectoryInfo(FilePath).GetDirectories())
                    {
                        TreeNode tn = new TreeNode(direc.Name);
                        tn.Text = direc.FullName;
                     
                        tn.Tag = direc.FullName;
                        SetSubDirectoryTreenode(direc, tn);
                        treeview.Nodes.Add(tn);
    
    
                    }
                   return true;
                }
                catch
                {
                    return false;
    
    
                }
    
            }
            /// <summary>
            /// 设置子目录的
            /// </summary>
            /// <param name="direc">目录路径</param>
            /// <param name="tn"></param>
            /// <param name="imglist"></param>
            private void SetSubDirectoryTreenode(DirectoryInfo direc, TreeNode tn)
            {
                foreach (DirectoryInfo dir in new DirectoryInfo(direc.FullName).GetDirectories())
                {
                    TreeNode temptn = new TreeNode(dir.Name);
                    temptn.Tag = dir.FullName;
                      temptn.Text = dir.Name;
                    tn.Nodes.Add(temptn);
                    foreach (FileInfo fileinfo in new DirectoryInfo(dir.FullName).GetFiles())
                    {
                        TreeNode temptreenode = new TreeNode(fileinfo.Name);
                        temptreenode.Tag = fileinfo.FullName;
                        temptreenode.Text = fileinfo.Name;
                     
                        temptn.Nodes.Add(temptreenode);
    
                    }
                    SetSubDirectoryTreenode(dir, temptn);
    
                }
            }
    
            #endregion
    View Code
  • 相关阅读:
    BNUOJ 12756 Social Holidaying(二分匹配)
    HDU 1114 Piggy-Bank(完全背包)
    HDU 2844 Coins (多重背包)
    HDU 2602 Bone Collector(01背包)
    HDU 1171 Big Event in HDU(01背包)
    HDU 2571 命运 (入门dp)
    HDU 1069 Monkey and Banana(最长递减子序列)
    HDU 1160 FatMouse's Speed (最长上升子序列)
    HDU 2594 KMP
    POJ 3783 Balls --扔鸡蛋问题 经典DP
  • 原文地址:https://www.cnblogs.com/51net/p/4238277.html
Copyright © 2011-2022 走看看