Ordnerinhalt in listbox mit sub-sub dirs

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von sonne75.

    Ordnerinhalt in listbox mit sub-sub dirs

    Ich möchte ein programm machen, dass alle ordner + unterordner + unterordner... in einer listbox auflistet.
    Dann soll es die dateien in der lb konvertieren aber das kann ich selber(hat schonmal geklappt).
    Mein jetziger code:

    VB.NET-Quellcode

    1. Sub dircheck()
    2. For Each File In Directory.GetFiles(FolderBrowserDialog1.SelectedPath)
    3. ListBox1.Items.Add(File)
    4. Next
    5. For Each DirectoryInfo In Directory.GetDirectories(FolderBrowserDialog1.SelectedPath)
    6. ListBox1.Items.Add(DirectoryInfo)
    7. Next
    8. End Sub


    Er listet nur die 1. unterordner auf.



    Ich hab was, was die ersten 8 unterordner + dateien (ohne vollst. pfad) auflistet:

    Quellcode

    1. Sub dircheck()
    2. Dim str As String
    3. For Each di In Directory.GetDirectories(FolderBrowserDialog1.SelectedPath)
    4. For Each dx In Directory.GetDirectories(di)
    5. For Each dy In Directory.GetDirectories(dx)
    6. For Each dz In Directory.GetDirectories(dy)
    7. For Each da In Directory.GetDirectories(dz)
    8. For Each db In Directory.GetDirectories(da)
    9. For Each dc In Directory.GetDirectories(db)
    10. For Each dd In Directory.GetDirectories(dc)
    11. str = dd.Substring(FolderBrowserDialog1.SelectedPath.Length + 1)
    12. ListBox1.Items.Add(str)
    13. For Each File In Directory.GetFiles(dd)
    14. ListBox1.Items.Add(File.Substring(FolderBrowserDialog1.SelectedPath.Length + 1))
    15. Next
    16. Next
    17. str = dc.Substring(FolderBrowserDialog1.SelectedPath.Length + 1)
    18. ListBox1.Items.Add(str)
    19. For Each File In Directory.GetFiles(dc)
    20. ListBox1.Items.Add(File.Substring(FolderBrowserDialog1.SelectedPath.Length + 1))
    21. Next
    22. Next
    23. str = db.Substring(FolderBrowserDialog1.SelectedPath.Length + 1)
    24. ListBox1.Items.Add(str)
    25. For Each File In Directory.GetFiles(db)
    26. ListBox1.Items.Add(File.Substring(FolderBrowserDialog1.SelectedPath.Length + 1))
    27. Next
    28. Next
    29. str = da.Substring(FolderBrowserDialog1.SelectedPath.Length + 1)
    30. ListBox1.Items.Add(str)
    31. For Each File In Directory.GetFiles(da)
    32. ListBox1.Items.Add(File.Substring(FolderBrowserDialog1.SelectedPath.Length + 1))
    33. Next
    34. Next
    35. str = dz.Substring(FolderBrowserDialog1.SelectedPath.Length + 1)
    36. ListBox1.Items.Add(str)
    37. For Each File In Directory.GetFiles(dz)
    38. ListBox1.Items.Add(File.Substring(FolderBrowserDialog1.SelectedPath.Length + 1))
    39. Next
    40. Next
    41. str = dy.Substring(FolderBrowserDialog1.SelectedPath.Length + 1)
    42. ListBox1.Items.Add(str)
    43. For Each File In Directory.GetFiles(dy)
    44. ListBox1.Items.Add(File.Substring(FolderBrowserDialog1.SelectedPath.Length + 1))
    45. Next
    46. Next
    47. str = dx.Substring(FolderBrowserDialog1.SelectedPath.Length + 1)
    48. ListBox1.Items.Add(str)
    49. For Each File In Directory.GetFiles(dx)
    50. ListBox1.Items.Add(File.Substring(FolderBrowserDialog1.SelectedPath.Length + 1))
    51. Next
    52. Next
    53. str = di.Substring(FolderBrowserDialog1.SelectedPath.Length + 1)
    54. ListBox1.Items.Add(str)
    55. For Each File In Directory.GetFiles(di)
    56. ListBox1.Items.Add(File.Substring(FolderBrowserDialog1.SelectedPath.Length + 1))
    57. Next
    58. Next
    59. End Sub


    Bitte keine kommentare wie "Voll unübersichtlich" oder "Es geht einfacher". Es ist so, wie ich es mache.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „00yoshi“ () aus folgendem Grund: aus folgendem Grund:

    00yoshi schrieb:

    Es ist so
    Wo ist das Problem?
    Sieh Dir das mal an. Form mit Button, ListBox und CheckBox:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim fi() As IO.FileInfo = New IO.DirectoryInfo("d:\Temp").GetFiles("*.*", IO.SearchOption.AllDirectories)
    3. Me.ListBox1.Items.AddRange(fi)
    4. End Sub
    5. Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
    6. If CheckBox1.Checked Then
    7. Me.ListBox1.DisplayMember = "FullName"
    8. Else
    9. Me.ListBox1.DisplayMember = "Name"
    10. End If
    11. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    00yoshi schrieb:

    Es sollen ja strings sein.
    Lernresistent?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    00yoshi schrieb:

    gibt mir entweder den ganzen pfad oder den dateinamen.
    Was für Member hat denn FileInfo noch so?
    Wenn also Deine Frage gewesen wäre, wie andere Member angezeigt werden können, wäre das gut.
    Hättest Du probiert und und mit (D)einer Lösung überrascht, wäre es besser.
    Probier mal z.B. diese DisplayMember:

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. 'Me.ListBox1.DisplayMember = "FullName"
    2. 'Me.ListBox1.DisplayMember = "Name"
    3. Me.ListBox1.DisplayMember = "Extension"
    4. Me.ListBox1.DisplayMember = "CreationTime"
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!