qq_34612730 2016-05-20 01:06 采纳率: 71.4%
浏览 4304
已采纳

c#wpf递归遍历文件夹,将文件夹的树形结构装入treeviewitem节点的问题

c# wpf递归遍历文件夹,并将文件夹的树形结构装入treeviewitem节点,触发Selected事件的问题

List list1 = new List(); //该集合存储文件路径
//递归遍历指定的目录,并将目录的树形结构装入treeviewitem节点
public void BindTreeView2(string path, TreeViewItem tree1)
{
DirectoryInfo di = new DirectoryInfo(path);
DirectoryInfo[] dirs = di.GetDirectories();
foreach (DirectoryInfo i in dirs)
{ //将递归遍历得到的文件夹路径与treeviewitem节点进行对应,并动态创建treeviewitem的Selected事件(选中事件),触发Selected事件,将该目录下得到的所有文件夹和文件路径添加到list1集合,若在文件夹之下遍历到子文件夹则创建子节点与子文件夹对应

                            TreeViewItem ziDt = new TreeViewItem();  
            ziDt.Header = i.Name;
            tree1.Items.Add(ziDt);

            ziDt.Selected += new RoutedEventHandler(delegate (object shabi, RoutedEventArgs r)
            {  //选中节点,通过 MessageBox.Show打印 节点对应文件夹下的所有文件夹和文件路径
                list1.Clear(); //清空之前选中节点所取得的所有路径
                string c = null;
                string[] directory1 = Directory.GetDirectories(i.FullName);
                foreach (string a in directory1)  //将目录下的文件夹路径加到list1
                {
                    list1.Add(a);
                }

                string[] file1 = Directory.GetFiles(i.FullName);
                foreach (string a in file1)      //将目录下的文件路径加到list1
                {
                    list1.Add(a);
                }
                foreach (string a in list1)
                {
                    c = c + "\r\n" + a;
                }
                MessageBox.Show(c); 

            });
            BindTreeView2(i.FullName, ziDt); 
        }

}

图片说明

图片说明

我只想要将被选中的节点所对应的文件夹下的文件和目录路径添加到list集合中,然后输出到对话框,我已经不知道怎么解决了,求大神高手帮助

  • 写回答

1条回答 默认 最新

  • David Bob 2016-05-20 10:08
    关注

    在遍历这里重复绑定了,简单的方法: if (item.Header==((TreeViewItem)treeView.SelectedItem).Header)
    MessageBox.Show(c);判定一下即可。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Android STD快速启动
  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动