شما باید از تابع بازگشتی استفاده کنید(خود دات نت برای جستجو تابع داره اما من تا حالا کارکرد ازش ندیدم...) :
Public Sub FindFolder(ByVal path As String, ByVal name As String, ByVal array As ArrayList, Optional ByVal searchsub As Boolean = False, Optional ByVal Attributes As IO.FileAttributes = IO.FileAttributes.Directory)
On Error Resume Next
Dim dirinfo As New IO.DirectoryInfo(path)
For Each dir As IO.DirectoryInfo In dirinfo.GetDirectories()
Application.DoEvents()
If dir.Attributes = Attributes And IO.Directory.Exists(dir.FullName & "\" & name) Then
array.Add(New IO.DirectoryInfo(dir.FullName & "\" & name))
End If
Next
If searchsub Then
For Each dir As IO.DirectoryInfo In dirinfo.GetDirectories()
Application.DoEvents()
FindFolder(dir.FullName, name, array, searchsub, Attributes)
Next
End If
End Sub