Also die MFT zu parsen ist nur bedingt eine Option. Aus den von dir bereits genannten Gründen. Ist mir außerdem zu heikel sowas in einer Software einzusetzen wenn es Betriebssystemversionen betrifft die noch unterstützt werden. Wenn es um Systeme bis Vista geht, würde ich mich auch darauf einlassen, da man dort faktisch sicher sein kann, daß sich die entsprechenden Strukturen nicht retroaktiv ändern
FAT ist für mich im Großen und Ganzen kein Optimierungsziel, sondern maximal NTFS, reFS und Netzlaufwerke (unabhängig vom eigtl. Dateisystem).
[...] als sich überall mit FindFirstFile/FindNextFile einzeln durch alle Ebenen zu kämpfen.
Das ist nur bedingt richtig. Die Bremse bei FindFirstFile und FindNextFile ist ja, daß dort standardmäßig allenfalls wenige Dateiinformationen auf einmal gelesen werden.
FindFirstFileEx versucht das mit dem Flag FIND_FIRST_EX_LARGE_FETCH zu beheben, aber eben erst ab Windows 7. Damit werden dann die Informationen vieler Dateien in einem Zug gelesen und dann eben einzeln per FindNextFile zurückgegeben. Die Beschleunigung passiert aber dadurch, daß der Vorgang mit der hohen Latenz (Netzverkehr oder von Platte lesen) optimiert wird, indem man in einem Schwung viele Dateieinträge ausliest, statt nur sehr wenige. Indem man dann FindExInfoBasic benutzt, kann man noch ein paar Kopiervorgänge vermeiden (dann fällt der kurze Dateiname weg). Aber dann kann man eben auch direct die darunterliegenden Native
API Funktionen benutzen. Und da will ich exakt austesten was genau wieviel Performanceschub bringt.