Zitat von
Fridolin Walther:
Und genau da liegst Du falsch. Von einer offensichtlichen Race Condition, die eintritt, wenn neue Einträge hinzukommen während der Iteration, einmal abgesehen, funktioniert Dein Ansatz nur, wenn die Dateiliste die FindFirstFile erstellt bei jedem Aufruf exakt gleich ist - sowohl vom Inhalt her als auch von der Position jedes einzelnen Dateirecords. Das ist aber keineswegs garantiert. Um dies zu garantieren, müsste die Liste nach identischen Kriterien sortiert werden jedes Mal, was aber nicht getan wird.
Nochmals: FindFirst erstellt keine Dateiliste, sondern gibt ein
Handle zu einer Suche zurück, die von Windows ausgeführt wird. 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. Wenn eine neue Datei zum Verzeichnis hinzugefügt wird, so wird diese so in diese Reihenfolge eingegliedert, wie es die relevanten Regeln des Dateisystems vorsehen.
Wann glaubst Du, dass es regnet: Wenn es der Wetterbericht meldet oder wenn Du auf der Straße nass wirst?