DragDrop ファイルでもフォルダでも_ファイル限定をForEachで回すVer

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
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()
	Dim Extes() As String = {"*.ai", "*.eps"}
	Dim Exte As String = String.Empty
	Me.Refresh()
	For Each FName As String In FileNames 'フルパスがファイルかフォルダか判別する
		If GetAttr(FName) = FileAttribute.Directory Then 'フォルダなら
			For Each Exte In Extes
				files = System.IO.Directory.GetFiles(FName, Exte)
				For Each FileName As String In files
					ContAdd(FileName) '重複のしないようにリストに追加
				Next
			Next
		Else 'ファイルなら
			For Each Exte In Extes
				If Path.GetExtension(FName) = Microsoft.VisualBasic.Right(Exte, Len(Exte) - 1) Then
					ContAdd(FName) '重複のしないようにリストに追加
				End If
			Next
		End If
	Next
	If fs.Count > 0 Then
		fs.Sort()
		ListBox1.Items.Clear()
		For Each aaa As String In fs
			ListBox1.Items.Add(Dir(aaa))
		Next
	End If
End Sub
Public Sub ContAdd(ByVal FName As String) '重複のしないようにリストに追加
	If fs.Contains(FName) = False Then fs.Add(FName)
End Sub