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 }

 

posted @ 2012-08-29 20:52  tonyhan  阅读(650)  评论(0编辑  收藏  举报