In FAT/FAT32 sind Verzeichnisse auch "nur" sowas wie Dateien mit paar Records drin.
Bei großen Verzeichnissen mit massig Dateien wäre das schneller, wenn man die FAT selber parst, aber bei all dem kommst du ohne gewisse Rechte (Admin) nicht an doe Rohdaten.
(außer bei Wechsellaufwerken, ala USB-Sticks, wo man nicht so viele Rechte braucht)
Bezüglich NTFS könntest du die MFT auslesen (da gibt es irgendwo in der
DP paar Codes dafür), das geht vorallem bei großen/tiefen Verzeichnisstrukturen wesentlich schneller, als sich überall mit FindFirstFile/FindNextFile einzeln durch alle Ebenen zu kämpfen.