用SHFileOperation来操作文件时非常方便,比用其他的MoveFile,CopyFile之类的API要统一很多,但是在填写路径时要特别注意
char* From = "E:\\PS.txt\\\0"; \\字符串的结尾一定是需要\\\0这样一个串,否则操作会失败,微软的 文档上面说是这个参数是可以写入多个路径的
char* To = "D:\\DDX\\\0"; \\ 所以最终结束的字符串一定是个double null,我想\\\0,是想用'\'这个转义字符转义出\0这样一个字符。
如果是拼字符串的话
string From = "E:\\PS.txt"; From += '\0';
string To = "D:\\DDX" ; To += '\0';
ZeroMemory(&op, sizeof(op));
op.fFlags = FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
op.pFrom = From;
op.pTo = To;
op.wFunc = FO_COPY;
op.fAnyOperationsAborted = TRUE;
if(0 !=SHFileOperation(&op))
{
int er = GetLastError();
cout<<er<<endl;
}