SHFileOperation复制文件夹、文件用法

MFC 同时被 2 个专栏收录
16 篇文章 0 订阅
21 篇文章 0 订阅

一、函数原型

    int SHFileOperation( LPSHFILEOPSTRUCT lpFileOp);

二、SHFILEOPSTRUCT结构

   

 typedef struct _SHFILEOPSTRUCT {
        HWND hwnd;//指向发送消息的窗口
        UINT wFunc;//执行的操作
        LPCTSTR pFrom;//源文件名
        LPCTSTR pTo;//目标文件名
        FILEOP_FLAGS fFlags;//操作与确认标识
        BOOL fAnyOperationsAborted;//操作是否终止
        LPVOID hNameMappings;//文件映射
        LPCTSTR lpszProgressTitle;//进度条标题
    } SHFILEOPSTRUCT, *LPSHFILEOPSTRUCT;

三、关键参数说明

wFunc:要执行的操作。可选参数:FO_COPY:复制 FO_DELETE:删除    FO_MOVE:移动    FO_RENAME:重命名

pFrom:源文件名           pTo:目标路径

注:MSDN上说要以两个\0结束,所以一般的字符串必须还要加上一个'\0'而不是“\0”

fFlags : 执行标识

FOF_SILENT //不产生正在复制的对话框
FOF_NOCONFIRMMKDIR//如果目的目录不存在,就默认创建
FOF_NOCONFIRMATION //不出现确认文件替换对话框(默认替换原来的文i件)
FOF_NOERRORUI//不出现错误对话框

四、例程

 

CString strSource = "C:\\a";
strSource += '\0';//注意必须是'\0'而不是"\0"!~!!
CString strDes = "C:\\b";
strDes += '\0';
SHFILEOPSTRUCT fop;
fop.wFunc = FO_COPY;//选择执行类型,FO_COPY,FO_DELETE,FO_RENAME,FO_MOVE四种
fop.pFrom = strSource;//源文件夹的路径,以'\0'即空为结尾
fop.pTo = strDes;//拷入文件的文件夹路径,以'\0'即空为结尾
if (SHFileOperation(&fop) == 0)
{
    return true;
}
else 
{
    return false;
}

 

  • 3
    点赞
  • 3
    评论
  • 5
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

醉逍遥_祥

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值