Die Lösung steht doch schon im Code:
Delphi-Quellcode:
if Recurse then
if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
try
repeat
if SR.Attr and faDirectory = faDirectory then
// --> ein Verzeichnis wurde gefunden
// der Verzeichnisname steht in SR.Name
// der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist
// RootFolder + SR.Name
Hier kannst du dann die Ordner in die StringList werfen. Die rekursive Suche kannst du ja entfernen, wenn du keine Unterordner brauchst.