C#treeview建立节点如上图所示,每建立一个节点,会在对应某个目录下生成相对应节点名字的txt文档,如图所示,
现在按照treeview顺序遍历treeview的节点,test01,test03,test02,test05,test04
遍历到test01,获取test01文件内容 tmp
遍历到test03,获取test03文件内容
遍历到test02,获取test02文件内容
遍历到test05,获取test05文件内容
遍历到test04,获取test04文件内容,
最后按照test01,test03,test02,test05,test04的顺序,把获取的所有内容叠加在一起tmp_all+=tmp;
最后遍历节点 匹配对应节点名字的文件 这块代码怎么写??
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Q692791
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog dlg = new FolderBrowserDialog();
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
TreeNode tn = new TreeNode(Path.GetDirectoryName(dlg.SelectedPath));
tn.Name = Path.GetDirectoryName(dlg.SelectedPath);
treeView1.Nodes.Add(tn);
LoadPath(dlg.SelectedPath,tn);
}
}
private void LoadPath(string p, TreeNode tn)
{
DirectoryInfo di = new DirectoryInfo(p);
foreach (var item in di.GetDirectories())
{
TreeNode tn1 = default(TreeNode);
try
{
tn1 = new TreeNode(Path.GetFileName(item.FullName));
tn.Nodes.Add(tn1);
LoadPath(item.FullName, tn1);
}
catch
{
if (tn1 != null)
tn.Nodes.Remove(tn1);
}
Application.DoEvents();
}
foreach (var txt in di.GetFiles("*.txt", SearchOption.TopDirectoryOnly))
{
TreeNode tn1 = new TreeNode(Path.GetFileName(txt.FullName));
tn1.Tag = txt.FullName;
tn.Nodes.Add(tn1);
}
}
private void LoadText(StringBuilder sb, TreeNode treeNode)
{
foreach (TreeNode item in treeNode.Nodes)
{
if (item.Tag == null)
{
LoadText(sb, item);
}
else
{
try
{
if (item.Checked)
{
string s = File.ReadAllText((string)item.Tag);
sb.Append(s);
sb.Append("\r\n");
}
}
catch
{
}
}
}
}
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Node.Checked)
{
foreach (TreeNode item in e.Node.Nodes) item.Checked = true;
}
StringBuilder sb = new StringBuilder();
LoadText(sb, treeView1.Nodes[0]);
textBox1.Text = sb.ToString();
}
}
}