zoukankan      html  css  js  c++  java
  • WPF实例,以getFiles()获取文件夹,treeview的应用

    读取电脑硬盘根目录添加到TreeView控件

     foreach (DriveInfo item in System.IO.DriveInfo.GetDrives())
                {
                    if(item.ToString()=="C:\") //这里不添加c盘
                        continue;
                    TreeViewItem tvi = new TreeViewItem();
                    tvi.Header = item.ToString();
                    tvi.Tag = item.RootDirectory;
                    tvi.Items.Add("*");
    
                    tv.Items.Add(tvi);
                }

    *是占位符,当点击treeview节点时再给添加其目录,对隐藏文件夹跳过查找

      private void tv_Expanded(object sender, RoutedEventArgs e)
            {
                var tvi = e.OriginalSource as TreeViewItem;
                tvi.Items.Clear();
                var di = tvi.Tag as DirectoryInfo;
                foreach (var item in di.GetDirectories())
                {
                    //只查不隐藏文件夹下的文件
                    if ((item.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden)   //必须进行与运算,因为默认文件是“Hidden”+归档(二进制11)。而Hidden是10.因此与运算才可以判断
                    {
                        TreeViewItem t = new TreeViewItem()
                        {
                            Tag = item,
                            Header = item.ToString()
                        };
                        t.Items.Add("*");
                        tvi.Items.Add(t);
                    }
                }
            }

    查找文件夹下包括子文件夹下所有文件,使用递归函数:

           public void GetFiles(DirectoryInfo di)
            {
                try
                {
                    filelist.AddRange(di.GetFiles());
                    foreach (var item in di.GetDirectories())
                    {
                        if ((item.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden)   //必须进行与运算,因为默认文件是“Hidden”+归档(二进制11)。而Hidden是10.因此与运算才可以判断
                        {
                            GetFiles(item);
                        }
                    }
                }
                catch (Exception ex)
                {
                    
                }
            }
  • 相关阅读:
    js封装一个哈希表
    js封装一个双链表
    js封装一个单链表
    js封装一个栈
    js封装一个优先级队列
    js封装一个队列
    微信小程序开发中自定义自适应头部导航栏
    Git的基本使用
    6位半数字万用表解释
    内存相关概念详解
  • 原文地址:https://www.cnblogs.com/lunawzh/p/5980754.html
Copyright © 2011-2022 走看看