问题描述
- 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 + "rn" + a; } MessageBox.Show(c); }); BindTreeView2(i.FullName, ziDt); }
}
我只想要将被选中的节点所对应的文件夹下的文件和目录路径添加到list集合中,然后输出到对话框,我已经不知道怎么解决了,求大神高手帮助
解决方案
在遍历这里重复绑定了,简单的方法: if (item.Header==((TreeViewItem)treeView.SelectedItem).Header)
MessageBox.Show(c);判定一下即可。
时间: 2024-09-10 17:54:12