SHFileOperation pFrom常量可以,变量出错

环境:win7 32 日文版,vs2005

错误代码:

SHFILEOPSTRUCT fileOp;
memset(&fileOp, 0, sizeof(SHFILEOPSTRUCT));
fileOp.wFunc = FO_DELETE;
fileOp.fFlags = ( FOF_NOCONFIRMATION);
fileOp.lpszProgressTitle = msgTitle;
char path2[MAX_PATH];
strcpy_s(path2, sizeof(path2), "H:\\IMG\\*.*");

fileOp.pFrom = path2;
if(SHFileOperation(&fileOp) != 0){	// ERROR
	CString msg;
	CString msgTitle;
	msg.Format(_T("删除失败"));
	MessageBox(msg, msgTitle, MB_ICONSTOP | MB_OK);
	return;
}
上面代码中SHFileOperation返回124,并且删除失败

但是如果改成

fileOp.pFrom = "H:\\IMG\\*.*";

则返回0,并且删除成功

百度,网上说pFrom的文件列表需以\0\0结尾,而文件之间以\0结尾,故如果是变量路径,需改为

strcpy_s(path2, sizeof(path2), "H:\\IMG\\*.*");
memset(path2+strlen(path2), 0, MAX_PATH-strlen(path2));
fileOp.pFrom = path2;
参考:

http://bbs.eyuyan.com/simple/?t92127.html

http://bbs.csdn.net/topics/50439584

http://bbs.csdn.net/topics/50081174

你可能感兴趣的:(变量,常量,124,SHFileOperation,pFrom)