SHFILEOPSTRUCT fo;
char str1[1024],str2[1024];memset(str1,0,sizeof(str1));
memset(str2,0,sizeof(str2));sprintf(str1,"c:\\%s\\update",temp);
sprintf(str2,"d:\\%s\\",temp);memset(&fo, 0, sizeof(fo));
fo.wFunc = FO_COPY;
fo.pFrom = (LPCSTR)str1; //这里如果换成"c:\\abc\\update"就没有问题
fo.pTo = (LPCSTR)str2;fo.fFlags = FOF_NOCOMFIRMATION;
SHFileOperation(&fo);为什么总是提示“无法读取文件或磁盘”,直接赋值就可以?
char str1[1024],str2[1024];memset(str1,0,sizeof(str1));
memset(str2,0,sizeof(str2));sprintf(str1,"c:\\%s\\update",temp);
sprintf(str2,"d:\\%s\\",temp);memset(&fo, 0, sizeof(fo));
fo.wFunc = FO_COPY;
fo.pFrom = (LPCSTR)str1; //这里如果换成"c:\\abc\\update"就没有问题
fo.pTo = (LPCSTR)str2;fo.fFlags = FOF_NOCOMFIRMATION;
SHFileOperation(&fo);为什么总是提示“无法读取文件或磁盘”,直接赋值就可以?
sprintf(str1,"c:\\%s\\update",temp);
sprintf(str2,"d:\\%s\\",temp);
应为:
sprintf(str1,"c:\\%s\\update\0\0",temp);
sprintf(str2,"d:\\%s\\\0\0",temp);为什么读不了文件呢?
ZeroMemory(&FileOp,sizeof(FileOp));
char bufferFrom[MAX_PATH] = {0};
char bufferTo[MAX_PATH] = {0};
int nFrom = strFrom.GetLength();
int nTo = strTo.GetLength();
memcpy(bufferFrom,strFrom.GetBuffer(nFrom),nFrom);
memcpy(bufferTo,strTo.GetBuffer(nTo),nTo);
FileOp.hwnd = NULL;
FileOp.wFunc = FO_COPY;
FileOp.pTo = bufferTo;
FileOp.pFrom = bufferFrom;
FileOp.fFlags = FOF_NOCONFIRMMKDIR | FOF_NOCONFIRMATION;
if ( 0 == SHFileOperation( &FileOp ) )
{
bRetValue = TRUE;
}
TCHAR str1[1024] = {0};
TCHAR str2[1024] = {0};_stprintf(str1, _T("c:\\%s\\update"), temp);
_stprintf(str2, _T("d:\\%s\\"), temp);memset(&fo, 0, sizeof(fo));
fo.wFunc = FO_COPY;
fo.pFrom = str1;
fo.pTo = str2;fo.fFlags = FOF_NOCOMFIRMATION;
SHFileOperation(&fo);为什么总是提示“无法读取文件或磁盘”,直接赋值就可以?
例如:fo.pFrom="d:\\a\0d:\\b\0\0"