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