Mit MoveFile (TDirectoy.Move) lässt sich ein Verzeichnis nicht in ein bereits bestehendes verschieben.
Wenn ich das richtig sehe, wendet
TDirectory.Move in Delphi 10.2 Tokyo das
RenameFile/MoveFile nur auf Dateien an, nicht auf Verzeichnisse.
Ja weil die Windows
API MoveFile nur mit nicht existierenden Zielverzeichnissen arbeitet. Für diesen Fall wird in
TDirectory.CheckMoveParameters überprüft, ob das Zielverzeichnis schon besteht. Wenn ja, wird eine
Exception ausgelöst. Das ist das Problem das der TE hat. Er will das Verzeihnis/Inhalt von c:\temp\alt in das Verzeichnis c:\temp\alt\.. (also c:\temp) verschieben. c:\temp exisistiert aber bereits und löst daher die
Exception aus.
Im Prinzip macht TDirectoy.Move mehr oder weniger das, was ich mit meinen beiden obigen Routinen mache, also Kopieren und Löschen, aber leider geht das hier nicht auf ein bestehendes Verzeichnis, wodurch diese Funktion für die gewünschte Aufgabe nutzlos ist. Mit den von mir oben geposteten Routinen geht das problemlos.