BCB中如何复制文件夹

dearelf 2007-08-15 03:28:20
各位大虾:我想将一个文件夹及其内部文件复制到另外的地方,请各位指点一下如何用bcb实现
...全文
567 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dearelf 2007-08-16
  • 打赏
  • 举报
回复
谢谢各位老大,问题解决,结贴
Waiting4you 2007-08-15
  • 打赏
  • 举报
回复
另外,aniven 的函数dFrom和dTo要以两个'\0'结尾才行.
coolcalf 2007-08-15
  • 打赏
  • 举报
回复
简单用法:
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);
编译失败 2007-08-15
  • 打赏
  • 举报
回复
HSFES.fFlags = FOF_NOCONFIRMATION¦FOF_NOCONFIRMMKDIR¦FOF_SILENT;//重要

有什么错误提示吗?这几个参数根据需要使用,你可以去除FOF_NOCONFIRMMKDIR¦FOF_SILENT试试。
coolcalf 2007-08-15
  • 打赏
  • 举报
回复
我教你:
http://bbs.aeasy.com/showtopic.asp?ThreadID=94
dearelf 2007-08-15
  • 打赏
  • 举报
回复
我试了一下,复制不了啊,我是像下面这样用的,不知道用的对不对
int __fastcall TForm1::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);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x =CopyDir("D:\\矿区图片\\","E:\\Downloads\\");
ShowMessage(AnsiString(x));
}
//-----------------------------------------------------------------------
编译失败 2007-08-15
  • 打赏
  • 举报
回复
利用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);
}

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧