Drag & Drop Formの場合

Partial Class Form1
    Public FL As New List(Of String) 'リストを作成

    Public Sub ContAdd(ByVal FName As String) '重複のしないようにリストに追加
        If FL.Contains(FName) = False Then FL.Add(FName)
    End Sub

    Public Function ExteJudge(ByVal FN As String) As Boolean '拡張子の種類、有無を判別
        If System.IO.Path.HasExtension(FN) = False Then Return True '拡張子ナシの場合
        Dim Extes() As String = {".ai", ".eps"}
        Dim Exte As String = String.Empty
        For Each Exte In Extes
            If Exte = System.IO.Path.GetExtension(FN) Then Return True
        Next
        Return False
    End Function

    Public Sub Form1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter
        If e.Data.GetDataPresent(DataFormats.FileDrop) Then 'コントロール内にドラッグされたとき実行される
            e.Effect = DragDropEffects.Copy 'ドラッグされたデータ形式を調べ、ファイルのときはコピーとする
        Else
            e.Effect = DragDropEffects.None 'ファイル以外は受け付けない
        End If
    End Sub

    Public Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
        Label1.Text = String.Empty
        'コントロール内にドロップされたとき実行される
        'ドロップされたすべてのファイル名を取得する
        Dim FileNames As String() = CType(e.Data.GetData(DataFormats.FileDrop, False), String())
        Me.Refresh()
        FL.Clear() '追加を認めない
        Dim files As String()
        For Each FName As String In FileNames 'フルパスがファイルかフォルダか判別する
            If GetAttr(FName) = FileAttribute.Directory Then 'フォルダなら
                files = System.IO.Directory.GetFiles(FName)
                For Each FileName As String In files
                    If ExteJudge(FileName) = True Then ContAdd(FileName) '重複のしないようにリストに追加
                Next
            Else 'ファイルなら
                If ExteJudge(FName) = True Then ContAdd(FName) '重複のしないようにリストに追加
            End If
        Next
        If FL.Count = 0 Then
            Console.WriteLine("適切なファイルが選択されていません") : Exit Sub
        ElseIf FL.Count > 0 Then
            FL.Sort()
            Me.ListBox1.Items.Clear()  '追加を認めない
            For Each aaa As String In FL
                Me.ListBox1.Items.Add(Dir(aaa))
            Next
        End If
    End Sub
End Class