首页 > 解决方案 > 如何在树视图中显示所有目录?(C#)

问题描述

嗨,这是我的代码,我对此有一些问题。如何将节点添加到最后一个节点的前面?我想创建自己的文件资源管理器。我找到了一个很好的例子,但它使用了其他工具来做到这一点。我的问题只是树视图

public Form1()
    {
        InitializeComponent();
        treeView1.Nodes.Add("Explorer");
    }


    private void button1_Click(object sender, EventArgs e)
    {
        FolderBrowserDialog fbd = new FolderBrowserDialog();

        if (fbd.ShowDialog() == DialogResult.OK) {

            DirectoryInfo directoriyInfo = new DirectoryInfo(fbd.SelectedPath);

            try
            {

                DirectoryInfo[] directories = directoriyInfo.GetDirectories();

                foreach (DirectoryInfo directory in directories) {

                    TreeNode node = treeView1.Nodes[0].Nodes.Add(directory.Name);

                    foreach (FileInfo files in directory.GetFiles()) {

                        TreeNode nodes = treeView1.Nodes[0].Nodes[node.Index].Nodes.Add(files.Name);
                    }
                    SearchInDirectory(directory , node.Index);
                }
            }
            catch (Exception ex) {

                MessageBox.Show(ex.Message);
            }

        }

    }

    private void SearchInDirectory(DirectoryInfo directory , int theNode) {


        DirectoryInfo[] directories = directory.GetDirectories();

        foreach (DirectoryInfo searchDirectory in directories)
        {

            TreeNode node = treeView1.Nodes[0].Nodes[theNode].Nodes.Add(searchDirectory.Name);

            foreach (FileInfo files in searchDirectory.GetFiles())
            {

                TreeNode nodes = treeView1.Nodes[0].Nodes[theNode].Nodes[node.Index].Nodes.Add(files.Name);
            }
            SearchInDirectory(searchDirectory , node.Index);
        }
    }

在这一段代码中。假设我们有 100 个方向。我应该在我的代码中添加 100 Nodes[0].Nodes[0].... 吗?:)

TreeNode nodes = treeView1.Nodes[0].Nodes[theNode].Nodes[node.Index].Nodes.Add(files.Name);

标签: c#

解决方案


推荐阅读