Populate a TreeView with a string directory

后端 未结 3 1064
一向
一向 2021-01-18 06:14

How to I populate a TreeView with a directory as a string. I am using the FolderBrowserDialog to select a folder and the SelectedPath property to get the string path (i.e. C

相关标签:
3条回答
  • 2021-01-18 06:51

    You could consider using controls such as FolderView and FileView from Shell MegaPack. They can be put inside your own forms instead of popping up a modal dialog.

    0 讨论(0)
  • 2021-01-18 07:01
    private void button1_Click(object sender, EventArgs e)
    {
        FolderBrowserDialog dialog = new FolderBrowserDialog();
        if (dialog.ShowDialog() != DialogResult.OK) { return; }
    
        this.treeView1.Nodes.Add(TraverseDirectory(dialog.SelectedPath));
    
    }
    
    
    private TreeNode TraverseDirectory(string path)
    {
        TreeNode result = new TreeNode(path);
        foreach (var subdirectory in Directory.GetDirectories(path))
        {
            result.Nodes.Add(TraverseDirectory(subdirectory));
        }
    
        return result;
    }
    
    0 讨论(0)
  • 2021-01-18 07:02

    Add the directory node to the treeview. Set the nodes name to the full path and text to the directory name.

    Recursively add nodes to treeview. Use the System.IO DirectoryInfo and FileInfo collections to get the files and directories in each DirectoryInfo object. make the terminating condition of your recursive function the case where there are no child directories.

    0 讨论(0)
提交回复
热议问题