递归加载文件
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);
}
}
}
}
}
just do it!

浙公网安备 33010602011771号