Hello once again

I want to list all folders from a given directory. I've done this code but it only lists in one level and I want to list all levels.
Can you guys give help to make it work?

VB Code:
  1. Public Sub ListDir(path As String)
  2. Dim NameFolder As String
  3.  
  4. NameFolder = Dir(path, vbDirectory)
  5. Do While NameFolder <> ""
  6.     If NameFolder <> "." And NameFolder <> ".." Then
  7.         If (GetAttr(path & NameFolder) And vbDirectory) = vbDirectory Then
  8.             MainForm.MSHFlexGrid1.AddItem (path & NameFolder & "\")
  9.            
  10.         End If
  11.     End If
  12.     NameFolder = Dir
  13. Loop
  14.  
  15. End Sub

Thank you