¿Y por qué no usar
SHFileOperation y dejar que el shell de Windows lo haga?
Claro que si queremos personalizar el asunto, entonces quizás usar
CopyFileEx con lo que tendremos control del estado del progreso de la copia en todo momento pudiendo usar lo que sugiere
ecfisa y, además, podremos conjuntarlo con otras acciones... Revisa
esto.
Saludos.