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
  • 相关阅读:
    暑假第二周总结
    7.18-7.24 第一周周报
    poj 3295 Tautology
    2016多校 #2 1006 Fantasia
    codeforces 698B Fix a Tree
    codeforces 699B Bomb
    HDU 4578(线段树
    CF 600F( 二分图
    hdu 5517 Triple(二维树状数组)
    HDU HDOJ5412(树套树or整体二分
  • 原文地址:https://www.cnblogs.com/51net/p/4238277.html
Copyright © 2011-2022 走看看