小弟我刚学习C#,以前在中远造船做技术,后来辞职学软件开发,对编程没有一点基础,最近像用C#写个资源管理器,可是写到这里犯难了,树结构打开的时候总有文件提示不是XXX的一部分,小弟百思不得其解,论坛上也没搜索到相关帖子,求助度娘也无果,只好请论坛上的高人指点一下,应该怎样跳过一些受系统保护的文件。感激~namespace 小型资源管理器
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {
            GetDrivers();
            foreach (TreeNode treenode in treeView1.Nodes)
            {
                if (treenode.Level == 0)
                {
                    GetDirectory(treenode);
                    GetFile(treenode);
                }
            }
        }
        public void GetDrivers()//获取所有的本地磁盘
        {
            DriveInfo[] di = DriveInfo.GetDrives();
            foreach (DriveInfo item in di)
            {
                if (item.Name.Equals(@"F:\") || item.Name.Equals(@"G:\"))
                {
                    return;
                }
                else
                {
                    TreeNode tn = new TreeNode();
                    tn.Text = item.Name;
                    
                    this.treeView1.Nodes.Add(tn);
                }
            }        }
        public void GetDirectory(TreeNode tn)//获取所有的本地磁盘下的文件夹
        {
            
                DirectoryInfo[] dir = new DirectoryInfo(tn.Text).GetDirectories();
                foreach (DirectoryInfo item in dir)
                {
                    TreeNode tns = new TreeNode();
                    tns.Text = item.Name;
                    tns.Tag = item.FullName;
                    tn.Nodes.Add(tns);
                }
            
        }
        public void GetFile(TreeNode tn)// 获取文件信息
        {
            
                FileInfo[] file = new DirectoryInfo(tn.Text).GetFiles();
                foreach (FileInfo item in file)
                {
                    TreeNode tns = new TreeNode();
                    tns.Text = item.Name;
                    tns.Tag = item.FullName;
                    tn.Nodes.Add(tns);
                }
        }        private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)//在节点展开后发生的事件~
        {
            foreach (TreeNode node in treeView1.SelectedNode.Nodes)
            {
                MyAfterEcpand(node);
            }
           
        }
        public void MyAfterEcpand(TreeNode tn)//自己定义的在展开节点以后发生的事情
        {
            //MessageBox.Show(tn.Tag.ToString());
            //MessageBox.Show(tn.Tag.ToString().Contains(@"\").ToString());
            if(tn.Tag .ToString().Contains(@"\")){
                GetDirectory(tn);
                GetFile(tn);
            }
        }
    }
}