Заполните список содержимым каталога, но примите только определенные расширения

Итак, в основном я перетаскиваю папку на форму, и список заполняется путями файлов внутри. Мне удалось заставить Listbox принимать только пути .MP3, но как я могу добавить больше допустимых расширений?

 Private Sub Form1_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
            Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
            For Each path In files

           If Directory.Exists(path) Then
                    'Add the contents of the folder to Listbox1
                    ListBox1.Items.AddRange(IO.Directory.GetFiles(path, "*.mp3*"))

Как видно из последней строки выше, принимаются пути в папке с расширением .mp3. Как добавить больше допустимых расширений, таких как .avi, .mp4 и т. д.?

Я пробовал ListBox1.Items.AddRange(IO.Directory.GetFiles(path, "*.mp3*" + "*.mp4*"))

Я также пробовал ListBox1.Items.AddRange(IO.Directory.GetFiles(path, "*.mp3*" , "*.mp4*"))

Неудачно !


person Sarim Abbas    schedule 16.08.2013    source источник


Ответы (1)


Вы должны создать цикл for, проверить свое расширение, а затем добавить его или нет...

Что-то типа;

    Dim AllowedExtension As String = "mp3 mp4"
    For Each file As String In IO.Directory.GetFiles("c:\", "*.*")
        If AllowedExtension.Contains(IO.Path.GetExtension(file).ToLower) Then
            listbox1.items.add(file)
        End If
    Next

Или еще более грязный;

IO.Directory.GetFiles(path, "*.mp*")

Или сделайте это дважды;

добавлять

     ListBox1.Items.AddRange(IO.Directory.GetFiles(path, "*.mp3*"))

а также

     ListBox1.Items.AddRange(IO.Directory.GetFiles(path, "*.mp4*"))
person Dee    schedule 16.08.2013
comment
Я изменил Dim AllowedExtension As String = "mp3 mp4" на Dim AllowedExtension As String = ".mp3 .mp4", и это работает. - person Cary Bondoc; 04.09.2015