首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

BCB中怎么复制文件夹

2012-02-13 
BCB中如何复制文件夹各位大虾:我想将一个文件夹及其内部文件复制到另外的地方,请各位指点一下如何用bcb实

BCB中如何复制文件夹
各位大虾:我想将一个文件夹及其内部文件复制到另外的地方,请各位指点一下如何用bcb实现

[解决办法]
利用API SHFileOperation,写成一个函数如下,此API功能强大,可删除可复制可更名,结构SHFILEOPSTRUCT可设很多参数以实现不同功能,特别是fFlags,也是比较容易出错的地方,用时要很注意。

//复制目录
int __fastcall TDownload::CopyDir(AnsiString dFrom,AnsiString dTo)
{
if (dFrom.IsEmpty() || dTo.IsEmpty()) return -1;

SHFILEOPSTRUCT HSFES;
HSFES.hwnd = NULL;
HSFES.wFunc = FO_COPY; //复制操作
HSFES.pFrom = dFrom.c_str();
HSFES.pTo = dTo.c_str();
HSFES.fFlags = FOF_NOCONFIRMATION|FOF_NOCONFIRMMKDIR|FOF_SILENT; //重要
HSFES.fAnyOperationsAborted = FALSE;
HSFES.hNameMappings = NULL;
HSFES.lpszProgressTitle = NULL;
return SHFileOperation(&HSFES);
}
[解决办法]
简单用法:
char *From = "d:\\abc\\*.cpp\0";
char *To = "d:\\as\0";
SHFILEOPSTRUCT op;
ZeroMemory(&op, sizeof(op));
op.hwnd = Handle;
op.wFunc = FO_COPY;
op.pFrom = From;
op.pTo = To;
op.fFlags= 0;
SHFileOperation( &op);
[解决办法]
另外,aniven 的函数dFrom和dTo要以两个'\0'结尾才行.

热点排行