64,637
社区成员
发帖
与我相关
我的任务
分享
// 将原路径srcDir中的文件/文件夹(不包括srcDir本身),拷贝到目标路径desDir下,存在的话覆盖
bool copyForder(const char * srcDir,const char *desDir)
{
SHFILEOPSTRUCT fop;
ZeroMemory(&fop, sizeof(fop));
fop.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR |FOF_MULTIDESTFILES;
fop.wFunc = FO_COPY;
fop.pFrom = _T(srcDir);
fop.pTo = _T(desDir);
int nResult = SHFileOperation(&fop);
if(0 == nResult)
{
return true;
}
return false;
}
string src="D:\\source\\";
string des = "D:\\dest\\aaa\\";
if(!copyForder(src.c_str() ,des.c_str()))
printf("文件夹拷贝失败!\n");
else
printf("文件夹拷贝成功!\n");
好像文件夹路径最后加不加那个斜杠会影响结果?之前试的时候从source往dest中复制的话怎么折腾都成功,现在往dest下的aaa文件夹里放感觉有时候就会失败,nResult返回值有时候是123,有时候是87,有墙,还查不到更多的信息,有时候复制成功但是又吧source本身都复制过去了,好混乱啊,到底怎么正确使用呢?
// WRONG
LPTSTR pszSource = L"C:\\Windows\\*";
// RIGHT
LPTSTR pszSource = L"C:\\Windows\\*\0";