Il FileListBox non fa al caso tuo?

Comunque ti do alcuni spunti

codice:
'questo codice legge i nomi di tuttr le dir contenute a loro volta in una directory, prova a modificarlo

MyPath = "c:\cash&carry\dat\"   ' Imposta il percorso.
MyName = Dir(MyPath, vbDirectory)   ' Recupera la prima voce.
Do While MyName <> ""   ' Avvia il ciclo.
   ' Ignora la directory corrente e quella di livello superiore.
   If MyName <> "." And MyName <> ".." Then
      ' Usa il confronto bit per bit per verificare se MyName è una directory.
      If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
        
            'costruisco l'array dei percorsi
            
            varPathAnno = varPathAnno & ",\" & MyName
                            
        ' se rappresenta una directory.
   End If
   End If
   MyName = Dir   ' Legge la voce successiva.
Loop

varPathAnno = Split(varPathAnno, ",")

'popolo la combo
For i=0 to UBound(varPathAnno)
          comboDir.AddItem varPathAnno(i)
        
next
Forse ci sono alcuni errori, l'ho estratto da un mio prog eliminando qualche riga di cod., ma non l'ho controllato.