zoukankan      html  css  js  c++  java
  • 递归加载文件

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    
    namespace _09资料管理器
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                //将Demo下的文件夹加载到TreeView上。
                //获取demo目录
                DirectoryInfo demoDir = new DirectoryInfo("demo");
                //获取demo目录下的所有的直接子文件夹
                DirectoryInfo[] dirInfos = demoDir.GetDirectories();
                foreach (DirectoryInfo item in dirInfos)
                {
                    TreeNode tnode = treeView1.Nodes.Add(item.Name);
                    LoadData(item.FullName, tnode);
                }
            }
            //递归获取当前目录下的所有子目录和子文件
            private void LoadData(string path, TreeNode tnode)
            {
                //1.获取当前路径下的所有直接子文件
                string[] files = Directory.GetFiles(path, "*.txt", SearchOption.TopDirectoryOnly);
                //把这些文件加到treeview上。
                foreach (string item in files)
                {
                    TreeNode nodeFile = tnode.Nodes.Add(Path.GetFileName(item));
                    //每次绑定文件节点的时候,都把当前文件的完整路径绑定到Tag中。
                    nodeFile.Tag = item;
                }
                //2.获取当前路径下的所有直接子文件夹
                string[] dirs = Directory.GetDirectories(path);
                foreach (string item in dirs)
                {
                    //Add方法的返回值就是,刚刚增加的这个节点。
                    TreeNode node = tnode.Nodes.Add(Path.GetFileName(item));
                    //递归调用方法自己。
                    LoadData(item, node);
                }
            }
            private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                //当TreeView的选择项改变后触发的事件!
                if (e.Node != null)
                {
                    if (e.Node.Tag != null)
                    {
                        textBox1.Text = File.ReadAllText(e.Node.Tag.ToString(), Encoding.Default);
                    }
                }
            }
        }
    }
    

      

  • 相关阅读:
    C# 多线程并发锁模式-总结
    C# 7 out variables, tuples & other new features
    AngleSharp 的Dom 选择器
    Html Agility Pack
    javascript判断是否按回车键
    VSTS 免费代码git/tfs托管体验-使用代码云托管
    NPOI 中的公式列的值的获取
    topshelf 开发windows 服务资料
    vue之指令
    hash和md5
  • 原文地址:https://www.cnblogs.com/cheshui/p/2703162.html
Copyright © 2011-2022 走看看