惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
云风的 BLOG
云风的 BLOG
小众软件
小众软件
雷峰网
雷峰网
博客园 - 【当耐特】
V
V2EX
WordPress大学
WordPress大学
IT之家
IT之家
Last Week in AI
Last Week in AI
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
The Cloudflare Blog
Jina AI
Jina AI
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - 林中小轩

Linux笔记 WebBrowser实现:自动填充网页上的用户名和密码并点击登录按钮 C#调用免费天气预报WebService 使用C#调用PI-SDK进行基于PI的开发——使用PI-SDK建立与PI数据库的连接(转载) InfoPlus.21(一) - 林中小轩 - 博客园 Datagrid中弹出新窗体出现的含有[object]空白页面问题的解决 XmlDatasetConvert类提供的四种方法 用VS.NET调试ASP页面 如何删除服务 - 林中小轩 - 博客园 史上最全word用法 一张舞女图测试你的左右脑切换能力【我看到左右都转呢~】 IP.21出现的错误 无法加载DLL(oci.dll) 假如你的年龄超过了23··· 如何经营婚姻 人生活的三种状态 前天晚上回到北京了 松口气了! 四叶草的祝福
用TreeView以递归显示选择磁盘上文件夹中全部文件夹和文件
林中小轩 · 2019-09-14 · via 博客园 - 林中小轩
using System;
using System.IO;
using System.Windows.Forms;

namespace FileManager
{
    public partial class FormFM : Form
    {
        public FormFM()
        {
            InitializeComponent();
        }

        private void BtnSelect_Click(object sender, EventArgs e)
        {
            //清除目录节点
            tvFolder.Nodes.Clear();
            //打开文件夹对话框
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            DialogResult result = fbd.ShowDialog();
            if (result == DialogResult.OK)
            {
                this.txtFilePath.Text = fbd.SelectedPath;
                //根节点
                TreeNode rootNode = new TreeNode();
                //用tag存放全路径,以备递归方法中用
                rootNode.Tag = txtFilePath.Text;
                //根节点文件夹名
                rootNode.Text = txtFilePath.Text.Substring(txtFilePath.Text.LastIndexOf("\\") + 1);
                //根节点文件夹名添加到treeview
                tvFolder.Nodes.Add(rootNode);
                //调用递归方法查找文件夹
                LoadFolder(rootNode);
                //根目录
                DirectoryInfo rootDirectoryInfo = new DirectoryInfo(txtFilePath.Text);
                //根目录下的所有文件
                FileInfo[] myFile = rootDirectoryInfo.GetFiles();
                foreach (FileInfo item in myFile)
                {
                    //文件加入到根目录节点下
                    rootNode.Nodes.Add(item.Name);
                }
            }
        }

        /// <summary>
        /// 递归查找文件夹及文件夹中的文件
        /// </summary>
        /// <param name="childNode"></param>
        public void LoadFolder(TreeNode childNode)
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(childNode.Tag.ToString());
            try
            {
                DirectoryInfo[] list = directoryInfo.GetDirectories();
                foreach (DirectoryInfo di in list)
                {
                    TreeNode tn = new TreeNode();
                    tn.Text = di.Name;//目录名
                    tn.Tag = di.FullName;
                    FileInfo[] arrfi = di.GetFiles();//目录中的文件名
                    foreach (FileInfo fi in arrfi)
                    {
                        TreeNode tn1 = new TreeNode();
                        tn1.Text = fi.Name;
                        tn1.Tag = fi.FullName;
                        tn.Nodes.Add(tn1);
                        LoadFolder(tn1);
                    }
                    childNode.Nodes.Add(tn);
                    LoadFolder(tn);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                //throw new Exception(ex.Message);
            }
        }
    }
}

posted @ 2019-09-14 15:05  林中小轩  阅读(503)  评论()    收藏  举报