CString strsrc("F:\\ANSYS\\CASE2\\*.*\0\0");
CString strdst("F:\\ANSYS\\CASE1\\*.*\0\0");
SHFILEOPSTRUCT FileOp;
FileOp.hwnd=m_hWnd;
FileOp.wFunc=FO_COPY;
FileOp.pFrom=strsrc.GetBuffer(strsrc.GetLength());
FileOp.pTo=strdst.GetBuffer(strsrc.GetLength());
SHFileOperation(&FileOp);
strsrc.ReleaseBuffer();
strdst.ReleaseBuffer();
CString strdst("F:\\ANSYS\\CASE1\\*.*\0\0");
SHFILEOPSTRUCT FileOp;
FileOp.hwnd=m_hWnd;
FileOp.wFunc=FO_COPY;
FileOp.pFrom=strsrc.GetBuffer(strsrc.GetLength());
FileOp.pTo=strdst.GetBuffer(strsrc.GetLength());
SHFileOperation(&FileOp);
strsrc.ReleaseBuffer();
strdst.ReleaseBuffer();
其中,(LPCSTR)是运算俯重载,返回strsrc的数据头指针,
(LPSTR)是强制转换。
CString strsrc("F:\\ANSYS\\CASE2\\*.*\0\0");
char* charPath = new char[strlen(strsrc)+1];
charPath = strdup(strsrc);
…………
…………
delete[] charPath;
CString strsrc("F:\\ANSYS\\CASE2\\*.*\0\0");
CString strdst("F:\\ANSYS\\CASE1\\*.*\0\0");
SHFILEOPSTRUCT FileOp;
FileOp.hwnd=m_hWnd;
FileOp.wFunc=FO_COPY;
FileOp.pFrom=strsrc.GetBuffer(strsrc.GetLength());
FileOp.pTo=strdst.GetBuffer(strdst.GetLength());
SHFileOperation(&FileOp);
strsrc.ReleaseBuffer();
strdst.ReleaseBuffer();
CString对象可用LPCTSTR强制转换。
FileOp.pTo = (LPCSTR)strdst;
请你试一试
char ch[100];
int i=0;
while(str.length)
{ch[i]=str.getat(i);
i++;
}
return ch;
这样就行了
char strs[255];
char strd[255];
memset(strs, 0, 255);
memset(strd, 0, 255);
sprintf(strs, (LPCSTR)strsrc);
sprintf(strd, (LPCSTR)strdst);
SHFILEOPSTRUCT FileOp;
memset(&FileOp, 0, sizeof(FileOp));
FileOp.wFunc=FO_COPY;
FileOp.pFrom=strs;
FileOp.pTo=strd;
FileOp.fFlags = FOF_MULTIDESTFILES;
SHFileOperation(&FileOp);