Listing files and folders, TreeView usage problem.

There is problem with the Nodes.Add, What i need to create treeview as it should be

Here is the code, try run it if you dont see the problem.

private void Form1_Load(object sender, EventArgs e)
{

// Dirs
foreach (string dirs in Directory.GetDirectories(@"C:\"))
{
if (dirs != "C:\\System Volume Information")
{
TreeNode node = new TreeNode();
node.Text = dirs;
treeView1.Nodes.Add(node); // this works

// Subdirs
foreach (string test in Directory.GetDirectories(dirs))
{
TreeNode subdirs = new TreeNode();
subdirs.Text = test;
treeView1.Nodes.Add(subdirs); // here it is. Should be "sub node"

// Files
foreach (string files in Directory.GetFiles(node.Text))
{

TreeNode subNode = new TreeNode();
subNode.Text = files;
node.Nodes.Add(subNode);
}
}
}
}
}
}
}


Answer this question

Listing files and folders, TreeView usage problem.

  • LittleEd

    Thanks alot for all replyes, those helps me out.

  • rmeuser

    Something like this Note the bold underlined text...

    ...
    // Subdirs
    foreach (string test in Directory
    .GetDirectories(dirs))
    {
       
    TreeNode subdirs = new TreeNode
    ();
        subdirs.Text = test;
        node.Nodes.Add(subdirs);
    // here it is. Should be "sub node"
       
    // Files
       
    foreach (string files in Directory
    .GetFiles(node.Text))
        {
           
    TreeNode subNode = new TreeNode
    ();
            subNode.Text = files;
            subdirs.Nodes.Add(subNode);
        }
    }
    ...

    Andrej



  • BGW52

    Yeah just like that, but still need figure out how get all subdir folders, this style is not working out, i should do new foreach for subdir of subdirs etc... wonder how i should make this out. any advices

  • hvdtol

    Arska wrote:
    Yeah just like that, but still need figure out how create a node for subdirs also, so it would show files inside them and folders also.

    Use something like this:


    protected void AppendDirectoriesToTreeNode( TreeNode node, string root )
    {
    DirectoryInfo rootDir = new DirectoryInfo( root );

    foreach( DirectoryInfo subDir in rootDir.GetDirectories() )
    {
    TreeNode subdirNode = new TreeNode( subDir.Name );
    AppendDirectoriesToTreeNode( subdirNode, subDir.FullName );

    node.Nodes.Add( subdirNode );
    }
    }




    Usages:

    TreeNode node = new TreeNode( "c:\" );
    AppendDirectoriesToTreeNode( node, "c:\" );

    myTreeView.Nodes.Add( node );


    Hope this helps



  • GS80

  • Listing files and folders, TreeView usage problem.