Laden...

Treeview zeigt nur 2 ebenen

Erstellt von shortys vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.964 Views
S
shortys Themenstarter:in
5 Beiträge seit 2006
vor 17 Jahren
Treeview zeigt nur 2 ebenen

Hallo zusammen,

kurz zur Vorstellung:

Ich bin neu hier mein Name ist Patrick, bin 19, etc....

mein Problem ist folgendes:

Ich möchte mir einen WinExplorer nachbasteln...leider zeigt meine bisherige Codephase nur 2 ebenen an, obwohl ich der Meinung bin, dass es 3 sein sollten.... vielleicht könnt ihr mier helfen ?


//Treeview füllen
                

                //schleife für festplatten
                string[] festplatten = Directory.GetLogicalDrives();
                int anz_festplatten = festplatten.Length;
                for (int af = 0; af < 2; af++)
                {
                    //festplatte wird eingelesen
                    TreeNode platte = new TreeNode(festplatten[af]);
                    tv_baum.Nodes.Add(platte);

                        // schleife für ordner in festplatte
                        string[] dir_e1 = Directory.GetDirectories(festplatten[af]);
                        int anz_dir_e1 = dir_e1.Length;
                        for (int adee = 0; adee < 2; adee++)
                        {
                            // ordner wird eingelesen
                            TreeNode dir_e1_t = new TreeNode(dir_e1[adee]);
                            string[] ordnername = dir_e1[adee].Split('\\');
                            platte.Nodes.Add(dir_e1_t.ToString(), ordnername[1].ToString());
   
                            //schleife für ordner in ordner
                            string[] dir_e2 = Directory.GetDirectories(dir_e1[adee]);
                            int anz_dir_e2 = dir_e2.Length;
                            for (int adez = 0; adez < anz_dir_e2; adez++)
                            {
                                // ordner wird eingelesen
                                TreeNode dir_e2_t = new TreeNode(dir_e2[adez]);
                                string[] ordnername_2 = dir_e2[adez].Split('\\');
                                dir_e1_t.Nodes.Add(dir_e2_t.ToString(), ordnername_2[2].ToString());

                                //schleife für ordner in ordner in ordner
                                string[] dir_e3 = Directory.GetDirectories(dir_e2[adez]);
                                int anz_dir_e3 = dir_e3.Length;
                                for (int aded = 0; aded < anz_dir_e3; aded++)
                                {
                                    // ordner wird eingelesen
                                    TreeNode dir_e3_t = new TreeNode(dir_e3[aded]);
                                    string[] ordnername_3 = dir_e3[aded].Split('\\');
                                    dir_e2_t.Nodes.Add(dir_e3_t.ToString(), ordnername_3[3].ToString());
                                }

                            }
                        }
                }

Ich bedanke mich schon mal im vorraus !!!

MfG
Patrick

M
1.439 Beiträge seit 2005
vor 17 Jahren

Ich habe mir deinen Code jetzt nicht durchgelesen, aber ich würde es so machen:
Zuerst die äusterste Ebene füllen(Laufwerke). Und erst sobald der Benutzer ein Element expandieren will, die nächste Ebene füllen.

S
shortys Themenstarter:in
5 Beiträge seit 2006
vor 17 Jahren

Abgesehn davon, dass ich nicht weiss ob das helfen wird, werd ich deinen Rat mal befolgen...

Des Weiteren hab ich noch eine Frage:
und zwar....

Kriegt mein Prog porbleme mit dem Auslesen der Systemordner..keine Berechtigung....
wie kann ich in der Schleife sagen nimm bitte nur standardmäßige Ordner, wie im WInExplorer?

...

danke

MfG
Patrick

4.221 Beiträge seit 2005
vor 17 Jahren

Schau Dir mal dies an:

FileTreeView

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...