Hallo JustusJonas!
Was soll denn das darstellen?
while FindFirst ist total falsch! Informiere Dich mal in der OH über
FindNext und
Findclose!
Inwieweit das Verschieben der Datei auf die Dateisuche einen Einfluß hat, weiß ich nicht. Auf jeden Fall produzierst Du ohne
FindClose ein Speicherloch.
Außerdem ruft Du das
ForceDirectories für jede Datei erneut auf. Da wird das Programm aber bestimmt super-schnell durch!

Einmal vor der Schleife sollte reichen. Wenn keine leeren Ordner erzeugt werden sollen, verwende ein Boolean-Flag.
Gruß
Dietmar Brüggendiek