Одним словом пришлось браться за отладчик и посмотреть что не так
оказалось вся проблема в этом
Код:
s1:= ExtractFileDir(ParamStr(0));
s2:= ExtractFilepath(ExtractFileDir(ParamStr(0)));
delete(s1, 1, length(s2));
ToS:=toDir+s1+'\';
createdir(tos);
createdir(tos);
Нужно было сперва создать директорию а потом перемешать туда все
первоначальный код исправный перемешаются даже пустые папки
оказалось дело не в WinAPI а у меня))))

Alegun спасибо за все... было приятно что не оставили одного в поле битвы..