void __fastcall CopiarCarpeta(AnsiString Origen, AnsiString Destino)
{
SHFILEOPSTRUCT sfos = {0,};
ZeroMemory(&sfos, sizeof(sfos));
sfos.hwnd = NULL;
sfos.wFunc = FO_COPY;
// Añadimos estas dos líneas
Origen.SetLength(Origen.Length()+1);
Origen[Origen.Length()] = '\0';
sfos.pFrom = Origen.c_str();
sfos.pTo = Destino.c_str();
sfos.fFlags = FOF_NOCONFIRMMKDIR | FOF_NOCONFIRMATION;
SHFileOperation(&sfos);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
CopiarCarpeta("c:\\dir_origen", "d:\\dir_destino");
}