2013-08-16 3 views
2

Итак, в основном я перетаскиваю папку в форму, а Listbox заполняет пути файлов внутри. Мне удалось заставить 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*"))

Нет удачи!

ответ

1

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

Что-то вроде;

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*")) 
+0

Делая это дважды сделал трюк. –

+0

Я модифицировал 'Dim AllowedExtension As String =" mp3 mp4 "' ** to ** 'Dim AllowedExtension As String =" .mp3 .mp4 "' и он работает. –