Hola,
Si se trata de copiar o mover una carpeta tal vez te fuera útil hacer uso de la estructura "TSHFileOpStruct" que propone el API de Win32. Esto que ahora verás es una adaptación de cierto código que Román publicó en su día para copiar o mover archivos... o puede que carpetas, no lo recuerdo ahora mismo:
Código Delphi
[-]
uses
ShellApi;
procedure TForm1.Button1Click(Sender: TObject);
var
FileOp: TSHFileOpStruct;
begin
FillChar(FileOp, SizeOf(FileOp), #0);
with FileOp do
begin
wFunc := FO_MOVE;
Wnd := GetDesktopWindow;
pTo := PChar('D:\carpeta');
pFrom := PChar('C:\carpeta'+#0#0);
fFlags := FOF_NOCONFIRMATION or
FOF_SILENT or FOF_ALLOWUNDO;
end;
ShFileOperation(FileOp);
end;
El código de más arriba movería la carpeta "C:\carpeta" y todo su contenido (subdirectorios y archivos) a "D:\carpeta". De todos modos echa un vistazo a la ayuda (SDK Win32 que viene con Delphi) sobre "SHFileOpStruct" para ampliar información.