Selecteren bestanden

Status
Niet open voor verdere reacties.

bonnowagt

Gebruiker
Lid geworden
7 dec 2006
Berichten
445
Ik heb de volgende code:

Code:
Dim files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
            For Each filename As String In files
                Dim path As String = System.IO.Path.GetFullPath(filename)
                If System.IO.Directory.Exists(path) Then
                    For Each item As String In System.IO.Directory.GetFiles(path)
                        If Not ListBox1.Items.Contains(item) Then If item.EndsWith(".wav") Then ListBox1.Items.Add(item)
                        If Not ListBox1.Items.Contains(item) Then If item.EndsWith(".mp3") Then ListBox1.Items.Add(item)
                        If Not ListBox1.Items.Contains(item) Then If item.EndsWith(".flac") Then ListBox1.Items.Add(item)
                    Next
                Else
                       If Not ListBox1.Items.Contains(path) Then ListBox1.Items.Add(path)
                End If
            Next
           
            If e.Data.GetDataPresent(DataFormats.FileDrop) Then
                Dim MyFiles() As String
                Dim i As Integer
                MyFiles = e.Data.GetData(DataFormats.FileDrop)
                For i = 0 To MyFiles.Length - 1
                    ListBox1.Items.Add(MyFiles(i))
                Next
            End If

Dit werkt prima bij folder en ook om enige bestanden te droppen en draggen
Wie weet wat ik moet doen om uit een bovengelegen directory de bestanden te halen

Bijv: Audo-Muziek-Liedje.mp3

Dus dat ik direct audiofolder pak en deze naar de lijst sleep. Nu moet ik eerst nog naar muziek.

Alvast bedankt
 
Het is niet de beste code ooit, maar volgens mij doet dit wat je wil:

Code:
    Private Sub lbFiles_DragOver(sender As Object, e As DragEventArgs) Handles lbFiles.DragOver

        If e.Data.GetDataPresent(DataFormats.FileDrop) Then
            e.Effect = DragDropEffects.Copy
        Else
            e.Effect = DragDropEffects.None
        End If

    End Sub

Code:
    Private Sub lbFiles_DragDrop(sender As Object, e As DragEventArgs) Handles lbFiles.DragDrop

        Dim items() As String = CType(e.Data.GetData(DataFormats.FileDrop), String())

        For Each item As String In items
            Dim di As New DirectoryInfo(item)

            If File.GetAttributes(di.FullName) = FileAttributes.Directory Then
                For Each fi As FileInfo In di.GetFiles("*.*", SearchOption.AllDirectories)
                    ProcessItems(fi.FullName)
                Next
            Else
                ProcessItems(item)
            End If
        Next

    End Sub

Code:
    Private Sub ProcessItems(file As String)

        If IO.File.Exists(file) Then
            If Not lbFiles.Items.Contains(file) Then
                If file.EndsWith(".wav") Or file.EndsWith(".mp3") Or file.EndsWith(".flac") Then lbFiles.Items.Add(file)
            End If
        Else
            If Not lbFiles.Items.Contains(file) Then lbFiles.Items.Add(file)
        End If

    End Sub

Let op: De listbox heeft de naam 'lbFiles' en niet de standaard naam 'ListBox1'.
Ook heb ik System.IO geimporteert staan, die moet je zelf ook even importeren, anders krijg je errors. :)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan