⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 C#2.0宝典源码,C#经典书籍,很多例子
💻 CS
字号:
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 Example19_5
{
    public partial class Form1 : Form
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 单击按钮时,将按输入的路径更新TreeView控件中的显示
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            // 清楚TreeView控件中的所有节点
            treeView1.Nodes.Clear();

            // 检测输入的路径是否为合法路径
            // 如果是则显示路径下的文件夹
            // 如果不是则给出错误提示窗体
            if (Directory.Exists(textBox1.Text))
            {
                // 先添加根结点为输入的目录
                treeView1.Nodes.Add(textBox1.Text);

                // 将根结点所代表的目录下的子文件夹显示
                PopulateTreeView(
                   textBox1.Text, treeView1.Nodes[0]);
            }
            // 如果路径不合法则给出错误提示窗体
            else
                MessageBox.Show(textBox1.Text + " could not be found.",
                   "Directory Not Found", MessageBoxButtons.OK,
                   MessageBoxIcon.Error);
        }

        /// <summary>
        /// 临时储存变量
        /// </summary>
        string substringDirectory;

        /// <summary>
        /// 列出给定目录的所有子目录
        /// </summary>
        /// <param name="directoryValue"></param>
        /// <param name="parentNode"></param>
        public void PopulateTreeView(string directoryValue, TreeNode parentNode)
        {
            // 储存目录的子目录
            string[] directoryArray = Directory.GetDirectories(directoryValue);

            // 列出当前目录的子目录
            try
            {
                // 察看是否还有子目录
                if (directoryArray.Length != 0)
                {
                    // 对于每一个子目录创建一个节点
                    // 对该目录下的文件夹再创建一个个节点
                    // 对所有的文件夹再执行PopulateTreeView方法,显示其子目录
                    foreach (string directory in directoryArray)
                    {
                        // 从完整的路径名中获取尾部的有效文件夹名称
                        // 通过查找“\”实现
                        substringDirectory = directory.Substring(
                           directory.LastIndexOf('\\') + 1,
                           directory.Length - directory.LastIndexOf('\\') - 1);

                        // 为当前目录创建节点
                        TreeNode myNode = new TreeNode(substringDirectory);

                        // 添加当前节点到TreeView控件中
                        parentNode.Nodes.Add(myNode);

                        // 列出子目录的文件夹
                        PopulateTreeView(directory, myNode);
                    }
                }
            } 

            // 捕获异常
            catch (UnauthorizedAccessException)
            {
                parentNode.Nodes.Add("Access denied");
            } 
        } 

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -