未知昵称
2018-06-22 10:24
采纳率: 89.7%
浏览 3.4k

C#遍历treeview节点,以及对应名字文件的内容获取

图片说明

图片说明

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;

最后遍历节点 匹配对应节点名字的文件 这块代码怎么写??

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • threenewbee 2018-06-22 16:40
    已采纳

    图片说明

    已采纳该答案
    评论
    解决 4 无用
    打赏 举报
  • threenewbee 2018-06-22 16:40
     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();
            }
    
        }
    }
    
    
    评论
    解决 无用
    打赏 举报
  • threenewbee 2018-06-22 16:42

    图片说明

    评论
    解决 无用
    打赏 举报
  • threenewbee 2018-06-22 16:44
    评论
    解决 无用 1
    打赏 举报

相关推荐 更多相似问题