Zitat von
PeterPanino:
Wenn dann mit FindFirst die Suche am Beginn des Verzeichnisses fortgesetzt wird, so wird auf diese Weise durch alle Dateien des Verzeichnisses so iteriert, dass beim Erreichen der ursprünglichen Datei jede Datei einmal drangekommen ist. Das ist das Ziel und der Zweck des Programms, nicht mehr und nicht weniger. Und es funktioniert. Probier es einfach mal aus!
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.