Чтобы скопировать файл или папку с файлами в заданную папку необходимо в проекте C++ Builder в конце файла Unit1.h перед #endif добавить программный код, отвечающий за перемещение папки с файлами:
int MoveFiles(AnsiString slSourceDir, AnsiString slTargetDir, bool toCopy = true)
{
SHFILEOPSTRUCT sh;
sh.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_FILESONLY;
sh.wFunc = toCopy ? FO_COPY : FO_MOVE;
sh.pFrom = slSourceDir.c_str();
sh.pTo = slTargetDir.c_str();
sh.hNameMappings = NULL;
sh.lpszProgressTitle = NULL;
return SHFileOperation (&sh);
}
Теперь разместим на форме кнопку Button и на событие нажатия кнопки добавим код:
1. Для копирования всех файлов из папки:
if(!MoveFiles("c:\\program files\\*.*", "c:\\temp"))
ShowMessage("Успешно");
else ShowMessage("Ошибка");
2. Для копирования одного файла:
if(!MoveFiles("c:\\file.txt", "c:\\temp"))
ShowMessage("Успешно");
else ShowMessage("Ошибка");
В функции MoveFiles указываются адреса в последовательности ("От куда копировать", "Куда копировать")
Примечание:
Если при копировании указанной папки не будет, то файлы будут скопированы в ту папку из которой копировались и создадутся без расширения.