Zitat von
PeterPanino:
Nochmals: FindFirst erstellt keine Dateiliste, sondern gibt ein
Handle zu einer Suche zurück, die von Windows ausgeführt wird.
Du irrst. FindFirstFile ruft
NtQueryDirectoryFile auf.
NtQueryDirectoryFile auf der anderen Seite liefert eine Doubly Linked List zurück, über die Du dann im späteren Verlauf mit Hilfe der FindNextFile Funktion iterierst.
Zitat von
PeterPanino:
Und: Die Reihenfolge der Iteration ist nicht deshalb konstant, weil die manifestierte Dateiliste nach einem bestimmten Muster sortiert wäre, sondern weil sie UNSORTIERT ist! Du hast richtig gelesen: "Unsortiert" ist also auch eine definierte Reihenfolge, die sich aus der Reihenfolge der Dateien im Dateisystem ergibt.
Unsortiert ist eben eine nicht definierte Reihenfolge, da sie sich jederzeit von einem FindFirstFile Call zum nächsten ändern kann. Auch die Aussage daß es sich dabei zwangsläufig um die Reihenfolge der Dateien im Dateisystem handelt stimmt nicht. Schau Dir die Reihenfolge von Dateien innerhalb der MFT an und vergleiche die Ergebnisse von FindFirstFile/FindNextFile auf dem selben NTFS Volume.