Listbox Unterverzeichnisse und Dateien auswählen

  • VB.NET
  • .NET 5–6

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Morrison.

    Listbox Unterverzeichnisse und Dateien auswählen

    Hallo zusammen irgendwie stehe ich gerade auf dem Schlauch,
    sorry für meine dumme Frage

    ich habe eine Listbox in der ich die Removable Laufwerke einlese
    nach auswahl des Laufwerks sollten sich die Ordner öffnen danach die enthaltene Dateien usw.
    jede Auswahl sollte in eine Textbox geschrieben werden.

    also beim Start steht in der Listbox z.B. d:\ und e:\
    nach auswahl d:\ soll in der Textbox1 d:\
    gleichzeitig öffnet sich die nächte Unterstruktur und es steht dort d:\test\ bzw d:\test2\ nach Auswahl steht die bestätigte Auswahl in der Textbox1
    so geht es weiter bis ich unter Umständen eine Datei auswähle.

    Irgendwie stehe ich gerade auf dem Schlauch wie ich das hinbekomme
    die erste Ebene klappt

    VB.NET-Quellcode

    1. With ListBox1
    2. .BeginUpdate()
    3. .Items.Clear()
    4. For Each drv As IO.DriveInfo In IO.DriveInfo.GetDrives
    5. If drv.DriveType = IO.DriveType.Removable Then ' Removable = USB Stick
    6. .Items.Add(drv.RootDirectory.FullName)
    7. End If
    8. Next
    9. .EndUpdate()
    10. End With
    11. Me.TextBox1.Text = Me.ListBox1.SelectedItem


    danach hakt es aber bei mir?

    sicher eine blöde Frage aber komme irgendwie mit dem Brett vor dem Kopf net weiter

    Code-Tag eingefügt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Eben was hingeschustert..vllt. kannst Du damit ja was anfangen..

    Spoiler anzeigen

    VB.NET-Quellcode

    1. ​Imports System.IO
    2. Public Class Form1
    3. Private Sub Form1_Sown(sender As Object, e As EventArgs) Handles MyBase.Shown
    4. With ListBox1
    5. .BeginUpdate()
    6. .Items.Clear()
    7. For Each drv As IO.DriveInfo In IO.DriveInfo.GetDrives
    8. If drv.DriveType = IO.DriveType.Removable Then ' Removable = USB Stick
    9. .Items.Add(drv.RootDirectory.FullName)
    10. End If
    11. Next
    12. .EndUpdate()
    13. End With
    14. End Sub
    15. Private Sub ListBox1_DoubleClick(sender As Object, e As EventArgs) Handles ListBox1.DoubleClick
    16. If Not IsNothing(Me.ListBox1.SelectedItem) Then
    17. Me.TextBox1.Text = Me.ListBox1.SelectedItem.ToString
    18. Dim oDir As DirectoryInfo
    19. Try
    20. oDir = New DirectoryInfo(Me.TextBox1.Text)
    21. Catch ex As Exception
    22. Debug.WriteLine(ex.Message)
    23. Me.TextBox1.Text = Me.ListBox1.SelectedItem.ToString
    24. Exit Sub
    25. End Try
    26. With ListBox1
    27. .BeginUpdate()
    28. .Items.Clear()
    29. Try
    30. For Each _dir In oDir.EnumerateDirectories
    31. .Items.Add(_dir.FullName)
    32. Next
    33. Catch ex As Exception
    34. Debug.WriteLine(ex.Message)
    35. .EndUpdate()
    36. Exit Sub
    37. End Try
    38. For Each oFile As FileInfo In oDir.GetFiles
    39. .Items.Add(oFile.FullName)
    40. Next
    41. .EndUpdate()
    42. End With
    43. End If
    44. End Sub
    45. End Class

    Jürgen_D schrieb:

    also beim Start steht in der Listbox z.B. d:\ und e:\
    nach auswahl d:\ soll in der Textbox1 d:\
    gleichzeitig öffnet sich die nächte Unterstruktur und es steht dort d:\test\ bzw d:\test2\ nach Auswahl steht die bestätigte Auswahl in der Textbox1
    so geht es weiter bis ich unter Umständen eine Datei auswähle.

    Also bei Klick auf ein Listbox-Element befüllt sich die Listbox komplett neu, mit diesmal zusätzlich allenOrdnern und Dateien des geklicksten Elements?

    Mal überlegt, eine Treeview zu nehmen?
    Da musste nicht die komplette Listbox neu aufbauen, sondern nur einzelne Treenodes befüllen (schwierig genug).
    Ja würde (und habe bereits) auch einen Treeview nehmen. Wenn man zurück will wird schwierig in der Listbox.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Guten Morgen Zusammen,

    danke Morrison der Code würde so funktionieren aber wie ErfinderDesRades und mrMo angemerkt haben komme ich dann nicht mehr zurück.

    Vielleicht hat ja jemand einen kleinen Code für mich mit Treeview.
    Mir ist eben auch erst so bewusst geworden das ich in der gleichen Form einmal auf "nur" USB Laufwerke zugreifen möchte und auch nur diese in der Auswahl haben sollte, jedoch zusätzlich bei einer anderen Auswahl auf "alle" Laufwerke zugriff haben muss.

    schöner Tag euch
    Guck Dir diese Assembly mal an: nuget.org/packages/ExpTreeLib/
    Project Website: https://www.codeproject.com/Articles/422497/ExpTreeLib-Version-3-Explorer-like-Navigation-and

    Das ist ein "Explorer-Like-Custom-Control"
    Find ich ganz gut gemacht..des gefrickel mit dem Standard-Treeview ist mir zu kompliziert :whistling: :P