求救!谁给一个读全盘,但要点击展开的时候才读下一级目录的treeView代码给我啊!!要能运行的!  谢谢 

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    namespace GetSystemDirectory
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                FillTree(this.treeView1, true);
                this.saveFileDialog1.Filter = "(*.txt)|*.txt";
                
            }        private void FillTree(TreeView treeView, bool isSource)
            {
                treeView.Nodes.Clear();
                string[] strDrives = Environment.GetLogicalDrives();
                foreach (string rootDirectoryName in strDrives)
                {
                    try
                    {
                        DirectoryInfo dir = new DirectoryInfo(rootDirectoryName);
                        if (dir.Exists == true)
                        {
                            TreeNode newNode = new TreeNode(rootDirectoryName);
                            treeView.Nodes.Add(newNode);
                            if (isSource)
                            {
                                GetSubDirectoryNodes(newNode, newNode.Text, true);                        }
                            else
                            {
                                GetSubDirectoryNodes(newNode, newNode.Text, false);
                            }
                        }
                    }
                    catch(Exception exc)
                    {
                        MessageBox.Show(exc.Message);
                    }
                }
            }        private void GetSubDirectoryNodes(TreeNode parent, string fullName, bool getFileNames)
            {
                DirectoryInfo dir = new DirectoryInfo(fullName);
                DirectoryInfo[] subDirs = dir.GetDirectories();            foreach (DirectoryInfo subDir in subDirs)
                {
                    if ((subDir.Attributes & FileAttributes.Hidden) != 0)
                    {
                        continue;
                    }                TreeNode subNode = new TreeNode(subDir.Name);
                    parent.Nodes.Add(subNode);                GetSubDirectoryNodes(subNode, subDir.FullName, getFileNames);
                }            if (getFileNames)
                {
                    FileInfo []files=dir.GetFiles();
                    foreach (FileInfo file in files)
                    {
                        TreeNode fileNode = new TreeNode(file.Name);
                        parent.Nodes.Add(fileNode);
                    }
                }
            }        private void button1_Click(object sender, EventArgs e)
            {
                TreeNode selectNode = this.treeView1.SelectedNode;
                DirectoryInfo info = new DirectoryInfo(selectNode.FullPath);            string[] strArray = new string[4];
                strArray[0] = "完整目录:"+"\n"+info.FullName;
                strArray[1] = "创建时间:"+"\n"+info.CreationTime.ToString();
                strArray[2] ="最近访问时间:"+"\n"+ info.LastAccessTime.ToString();
                strArray[3] = "最近写入时间:"+"\n"+info.LastWriteTime.ToString();            this.richTextBox1.Lines = strArray;            DateTime nowDate = new DateTime();
                nowDate = DateTime.Now;
                this.richTextBox1.Text =this.richTextBox1.Text+"\n"+"当前时间:"+"\n"+ nowDate.ToString();
                
            }        private void button2_Click(object sender, EventArgs e)
            {
                this.richTextBox1.Text = "";
            }        private void button4_Click(object sender, EventArgs e)
            {
                if (this.saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    this.richTextBox1.SaveFile(this.saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                }
            }        private void button3_Click(object sender, EventArgs e)
            {
                this.Close();
            }
        }
    }