[GELÖST]Datein in Listbox auflisten und durch doppelklick öffnen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von markushettmann.

    [GELÖST]Datein in Listbox auflisten und durch doppelklick öffnen

    Hallo.
    Ich lese alle Dateien die in einem Ordner sind in eine Listbox mit diesem Code

    VB.NET-Quellcode

    1. For Each datei As String In IO.Directory.GetFiles((Application.StartupPath & "\data\"), "*.wwd")
    2. ListBox1.Items.Add(datei)
    3. Next

    ein. Wenn ich jetzt die Anwendung starte steht der komplette Pfad da. Gut. Nur wenn ich doppelt draufklicke zum öffnen (Der Code:

    VB.NET-Quellcode

    1. Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
    2. Shell(ListBox1.SelectedItem)
    3. End Sub
    ) kommt, dass die Datei nicht gefunden wurde. Klar, da es in dem Debug - Ordner der Anwendung ist und somit im Pfad Leerzeichen sind. Meine Frage: Wie bekommen ich es hin, dass " soetwas vor dem ListBox1.SelectedItem simuliert wird? So """ funktionier es nicht.

    Und ne 2. Frage: Wie kann ich nur den Dateinamen anzeigen lassen?

    LG.

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

    ich mach sowas immer über tags:

    VB.NET-Quellcode

    1. Dim di As New IO.DirectoryInfo("Ordnerpfad")
    2. For Each fi As IO.FileInfo In di.GetFiles("*.*", IO.SearchOption.AllDirectories)
    3. ListBox1.Items.Add(fi.Name)
    4. ListBox1.Items.Item(ListBox1.Items.Count - 1).Tag = fi.FullName
    5. Next


    Und im Event

    VB.NET-Quellcode

    1. Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
    2. Process.Start(CStr(ListBox.SelectedItem.Tag))
    3. End Sub
    mist ich hab vergessen, das Tags nur bei einer ListView funktionieren...
    Dann musst du es über ein globales Array lösen:

    VB.NET-Quellcode

    1. Private paths() As String = {"x"}
    2. Private Sub ListBoxFüllen(ByVal OrdnerPfad As String)
    3. Dim di As New IO.DirectoryInfo(OrdnerPfad)
    4. For Each fi As IO.FileInfo In di.GetFiles("*.*", IO.SearchOption.AllDirectories)
    5. ListBox1.Items.Add(fi.Name)
    6. ReDim Preserve paths(paths.Length)
    7. paths(paths.Length - 1) = fi.FullName
    8. Next
    9. End Sub


    Im Event:

    VB.NET-Quellcode

    1. Private Sub ListBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
    2. Process.Start(paths(ListBox1.SelectedIndices(0) + 1))
    3. End Sub

    VB.NET-Quellcode

    1. 'Nur Dateien:
    2. ListBox1.Items.Clear()
    3. For Each a As String In IO.Directory.GetFiles(TextBox1.Text)
    4. Dim fi As New IO.FileInfo(a)
    5. ListBox1.Items.Add(fi.Name)
    6. 'Dateien mit Pfad:
    7. ListBox1.items.clear()
    8. ListBox1.Items.AddRange(System.IO.Directory.GetFiles(TextBox1.text))