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

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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题