C# Alle Ordner anzeigen

AirForce

Lt. Junior Grade
Registriert
Okt. 2010
Beiträge
296
Ich habe folgendes Problem, man kann alle Ordner sehen in der Treeview aber leider keine Unterverzeichnisse. Ich habe es so gemacht das man in der erste Treeview die Laufwerke sieht wenn man da drauf klick sieht man die Ordner in der zweiten Treeview, man sieht leider keine Unterverzeichnisse.

Code:
private void listAllDrives()
        {
            foreach (DriveInfo drives in DriveInfo.GetDrives())
            {
                treeViewDrive.Nodes.Add(drives.ToString());
            }
        }

        private void treeViewDrive_AfterSelect(object sender, TreeViewEventArgs e)
        {
          
            if (treeViewDrive.Nodes.Count > 0)
            {
                
                treeViewInfo.Nodes.Clear();
                
                string[] dirs = Directory.GetDirectories(treeViewDrive.SelectedNode.Text);

                foreach (string dir in dirs)
                {
                    DirectoryInfo di = new DirectoryInfo(dir);
                    TreeNode node = new TreeNode(di.Name);
                    try
                    {
                        foreach (DirectoryInfo folder in di.GetDirectories())
                        {
                            TreeNode f = new TreeNode(folder.Name);
                            f.Tag = folder.FullName;
                            node.Nodes.Add(f);
                        }
                        
                        foreach (var file in di.GetFiles())
                        {
                            TreeNode n = new TreeNode(file.Name);
                            node.Nodes.Add(n);
                        }
                    }
                    catch (UnauthorizedAccessException)
                    {
                        //display a locked folder icon
                        node.ImageIndex = 12;
                        node.SelectedImageIndex = 12;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "DirectoryLister",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        treeViewInfo.Nodes.Add(node);
                    }
                }

              
            }
 
        }
    }
 
Gibt es dafür einen Tipp suche schon eine weile bei Google nach der Lösung.
 
Code:
TreeNode f = new TreeNode(folder.Name
Hier hast du den Node von einem Ordner.
Dann benutzt du getDirectories um die Unterordner zu bekommen, wie du weiter oben schon gemacht hast:
Directory.GetDirectories(treeViewDrive.SelectedNode.Text);
und danach fügst du diese Ordner dem Node f hinzu:
Code:
f.Nodes.Add(n);
Und erst dann führst du folgende Anweisung aus:

Code:
node.Nodes.Add(f);
 
Zurück
Oben