递归加载文件

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

  

posted @ 2012-09-25 22:53  51秒懂  阅读(244)  评论(0编辑  收藏  举报