C#读取目录加载到TreeView

http://blog.163.com/aoxiangtiankong@yeah/blog/static/8411202620092351359634/


private void Form1_Load(object sender, EventArgs e)
 {
            TreeNode node = new TreeNode("Images");
            treeView1.Nodes.Add(node);

            GetTreeViewDat("D:\DesignSystem\Images",node);
 }


// 递归调用,加载Images下的所有文件夹。


private void GetTreeViewData(string path, TreeNode node)
{
            //获取指定路径下的所有文件夹集合,GetFiles()则会包含文件,如:a.jpg。
            string[] dirs = Directory.GetDirectories(path);
            string imagePath = "";
            for (int i = 0; i < dirs.Length; i++)
            {

                //得到指定文件夹的子级文件夹,子级文件夹通过自调自获取其子级文件夹,

               //这样一层一层得到指定文件下的所有文件夹。
                string childpath = dirs[i];  
                //截取字符串,把路径去掉,只显示文件夹名称。
                imagePath = childpath.Substring(childpath.LastIndexOf("\") + 1, childpath.Length -                                      childpath.LastIndexOf("\") - 1);
                TreeNode child = new TreeNode(imagePath,0,0); // 把文件夹增加到TreeNode。
                child.Name = childpath;
                node.Nodes.Add(child);
                GetTreeViewData(childpath, child);  //递归调用.
            }
 }


 

 

/该方法就是读取指定文件夹下的所有文件/

 /// <summary>
        /// 通过递归调用,获取指定文件夹下的所有文件夹以及文件,存储到ArrayList。
        /// </summary>
        /// <param name="path"></param>
        /// <param name="filter"></param>
        private void ParseDirectory(string path, string filter)
        {
            string[] dirs = Directory.GetDirectories(path);  //得到子目录
            IEnumerator iter = dirs.GetEnumerator();
            while (iter.MoveNext())
            {
                string str = (string)(iter.Current);
                ParseDirectory(str, filter);  //递归调用。
            }
            string[] files = Directory.GetFiles(path, filter);   //获取文件
            
            if (files.Length > 0)
            {
                m_numFiles += files.Length;
                m_pathList.Add(files);   //存储文件目录。
            }
        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值