DragDrop 拡張子のないファイルもOK

Dim Fs As New List(Of String)
Private 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 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
		End If
	Next
	Return False
End Function
Public Sub ContAdd(ByVal FName As String)
	If fs.Contains(FName) = False Then
		fs.Add(FName)
	End If
End Sub

Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
	Dim FileNames As String() = CType(e.Data.GetData(DataFormats.FileDrop, False), String())
	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) '重複のしないようにリストに追加
				End If
			Next
		Else 'ファイルなら
			If ExteJudge(FName) = True Then
				ContAdd(FName) '重複のしないようにリストに追加
			End If
		End If
	Next
	If Fs.Count = 0 Then
		Console.WriteLine("適切なファイルが選択されていません")
		Exit Sub
	Else
		Fs.Sort()
		ListBox1.Items.Clear()
		For Each aaa As String In Fs
			ListBox1.Items.Add(Dir(aaa))
		Next
	End If
End Sub