Datein mit bestimmter datei endung einlesen und in Listbox ausgeben?

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Datein mit bestimmter datei endung einlesen und in Listbox ausgeben?

    Hi,
    ich habe ein problem ich will mehrere Datein aus einem Ordner mit bestimmter datei endung (z.B ".mp3")
    in der listbox anzeigen lassen. Ich bin soweit gekommen aber weiter weiß ich nicht. In label3 ist der Pfad


    VB.NET-Quellcode

    1. For Each file In My.Computer.FileSystem.GetFiles(Label3.Text)
    2. ListBox1.Items.AddRange(System.IO.Directory.GetFiles(Label3.Text & "\", "*.mp3"))
    3. Next


    mit dem code klappt es aber ich habe in dem Ordner 10 mp3 datein aber plötzlich wenn ich den button damit
    klicke hab ich 360 datein in der listbox und alle doppelt und dreifach. Wie kann ich das beheben???
    Danke für eure Hilfe ;)
    Hallo,
    Schau dir deinen Code genauer an:
    Du hast eine Schleife, in der einzeln mit der Variable file der Name einer in My.Computer.FileSystem.GetFiles(Label3.Text) gefundenen Datei übergeben wird. Diese Variable nutzt du aber nicht, sondern:
    Übergibst jedes mal die komplette Auflistung (Array) an die Listbox (AddRange).

    Lösung:
    Lass die Schleife weg oder nimm Listbox.Add(file.Fullname)

    Fiel Fergnügen
    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Ok das geht schonmal.
    Aber nun möchte ich, dass die Datei, die ich in der Listbox angeklickt habe, auch geöffnet wird, bzw. dass mein Programm diese dann weiterverarbeitet.

    Wie kann man das machen?

    Und wie kann ich machen, dass NUR der Name der Datei ohne Pfad da steht?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „greenVB-user“ ()

    Erstmal danke für die Antwort.

    Ich habe das jetzt so gemacht aber es geht nicht ?( ;(

    VB.NET-Quellcode

    1. ListBox1.Items.AddRange(System.IO.Directory.GetFiles(System.IO.Path.GetFileNameWithoutExtension(paths)))

    paths ist hier die Variable in der der Pfad steht.

    LG
    ich empfehle, nicht mit Strings zu arbeiten, sondern mit FileInfo / DirectoryInfo.

    guggemal RecursiveFileSearch

    Da gibts eine Listbox, die FileInfos anzeigt, und zwar deren .FullName-Property, also die ganze Pfade.
    Das kann geändert werden, einfach indem beim Databinding ihr DisplayMember geändert wird, also ändere:

    VB.NET-Quellcode

    1. lstFiles.DisplayMember = "FullName"
    zu:

    VB.NET-Quellcode

    1. lstFiles.DisplayMember = "Name"