SHFileOperation 实现指定源文件夹和目标文件夹直间的拷贝

C++文件批量复制实用代码
本文介绍了一段使用C++实现的文件批量复制代码,该代码利用了SHFileOperation函数来从源路径复制所有文件到目标路径。通过具体实例展示了如何设置文件操作结构体fop,包括设置操作标志、路径等参数,最终调用SHFileOperation进行文件复制,并检查返回值以确保操作成功。

//strSrcPath="D:\zm\ModelShell\resource\*.*";

//strDestPath="C:\Users\Administrator\Desktop\WorkShell\101601\101601_00_rad";

//拷贝strSrcPath目录所有文件到指定strDestPath文件目录
 int CFileTools::CopyFileToRad(CString strSrcPath, CString strDestPath)
 {
     TCHAR tszSrcPath[MAX_PATH] = { 0 };
     TCHAR tszDestPath[MAX_PATH] = { 0 };
     _sntprintf_s(tszSrcPath, MAX_PATH, _T("%s"), strSrcPath.GetBuffer(strSrcPath.GetLength()));
     strSrcPath.ReleaseBuffer(strSrcPath.GetLength());
     _sntprintf_s(tszDestPath, MAX_PATH, _T("%s"), strDestPath.GetBuffer(strDestPath.GetLength()));
     strDestPath.ReleaseBuffer(strDestPath.GetLength());

     SHFILEOPSTRUCT fop;
     ZeroMemory(&fop, sizeof(fop));
     fop.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR /*| FOF_SILENT*/;
     fop.fAnyOperationsAborted = FALSE;
     fop.hNameMappings = NULL;
     fop.lpszProgressTitle = NULL;
     fop.wFunc = FO_COPY;
     fop.pFrom = tszSrcPath;        /*_T("E:\\mywww\\server\\mysql\\5.5\\*.*"); 路径不支持反斜杠*/
     fop.pTo = tszDestPath;            /*_T("E:\\mywww\\server\\test\\5.5"); 路径不支持反斜杠*/

     int iRes = SHFileOperation(&fop);
     if (iRes != 0)
     {
         CString strLog;
         strLog.Format(_T("SHFileOperation 返回值 iRes=%d\n"), iRes);
         OutputDebugString(strLog);
     }
     return iRes;
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值