使用可视工作室将目录绑定到C#中的树视图

时间:2010-06-08 20:10:43

标签: c# visual-studio

有没有人知道如何将目录绑定到C#中的树视图,或者知道要跟随的简单教程?感谢

2 个答案:

答案 0 :(得分:4)

这样的事情:

    public void BindDirectoryToTreeView(string directoryPathToBind)
    {
        TreeNode rootNode = new TreeNode();
        treeView1.Nodes.Add(rootNode);
        RecurseFolders(directoryPathToBind, rootNode);
    }

    public void RecurseFolders(string path, TreeNode node)
    {
        var dir = new DirectoryInfo(path);
        node.Text = dir.Name;

        try
        {
            foreach (var subdir in dir.GetDirectories())
            {
                var childnode = new TreeNode();
                node.Nodes.Add(childnode);

                RecurseFolders(subdir.FullName, childnode);
            }
        }
        catch (UnauthorizedAccessException ex)
        {
            // TODO:  write some handler to log and/or deal with 
            // unauthorized exception cases
        }

        foreach (var fi in dir.GetFiles().OrderBy(c=>c.Name))
        {
            var fileNode = new TreeNode(fi.Name);
            node.Nodes.Add(fileNode);
        }
    }

例如,您可以通过调用BindDirectoryToTreeView("c:\");来调用代码。请注意,您应该在具有此代码的表单上具有名为treeView1的树视图。

答案 1 :(得分:0)

您可以使用简单的递归。不确定要在TreeView中显示的内容,但以下方法可以正常工作

public static void LoadDir(TreeNode t,DirectoryInfo d){

TreeNode tn = new TreeNode(d.name);

t.ChildNodes.Add(TN);

foreach(d.GetDirectories()中的DirectoryInfo dn)

LoadDir(TN,DN); }

您可以将其作为

调用

TreeNode tn = new TreeNode(“Root”);

TreeView1.Nodes.Add(TN);

LoadDir(tn,new DirectoryInfo(@“C:\ Oracle”);