• 递归加载文件


    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);
                    }
                }
            }
        }
    }
    

      

  • 相关阅读:
    ubuntu 完全干净的卸载docker
    thinkphp5 助手函数input的常用方法
    thinkphp6
    docker编排
    Linux下的tar压缩解压缩命令详解
    scp拷贝命令
    一行命令搞定node.js 版本升级
    git 设置文件大小写敏感
    ubuntu1804php安装
    关于权限表的基本设计
  • 原文地址:https://www.cnblogs.com/cheshui/p/2703162.html
Copyright © 2020-2023  润新知