windows下实现拷贝文件/文件夹

使用SHFileOperation函数进行操作

需要注意的地方:

1、pFrom, pTo字符串必须是以两个\0结尾

2、FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_SILENT标志位用户实现静默拷贝,拷贝过程不弹出任何对话框

 1 int CopyFileToFolder(const string &filePath, const string &toPath)
 2 {
 3     SHFILEOPSTRUCT FileOp;
 4     ZeroMemory((void*)&FileOp, sizeof(SHFILEOPSTRUCT));
 5 
 6     string strFromPath = filePath;
 7     string strToPath = toPath;
 8     // this string must be double-null terminated
 9     strFromPath.append(1, _T('\0'));
10     strToPath.append(1, _T('\0'));
11 
12     FileOp.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_SILENT;
13     FileOp.hNameMappings = NULL;
14     FileOp.hwnd = NULL;
15     FileOp.lpszProgressTitle = NULL;
16     FileOp.pFrom = strFromPath.c_str();
17     FileOp.pTo = strToPath.c_str();
18     FileOp.wFunc = FO_COPY;
19 
20     return SHFileOperation(&FileOp);
21 }
原文地址:https://www.cnblogs.com/tonyhan/p/2662646.html