适用于xp以后系统(不含xp,xp系统解压缩版本请看这里)
包含头文件:
// easy unzip #include <windows.h> #include <Shellapi.h>
调用:
SHFILEOPSTRUCT SHDirOp; ZeroMemory(&SHDirOp, sizeof(SHFILEOPSTRUCT)); SHDirOp.hwnd = NULL; SHDirOp.wFunc = FO_COPY; SHDirOp.pFrom = "C:\\test.zip\\*.*"; SHDirOp.pTo = "C:\\test"; SHDirOp.fFlags = FOF_NOCONFIRMMKDIR|FOF_NOCONFIRMATION|FOF_SILENT|FOF_SIMPLEPROGRESS; //The Copying Function SHFileOperation(&SHDirOp);
flag具体看msdn说明:
http://msdn.microsoft.com/en-us/library/bb759795.aspx
update:
发现一个问题,传入string类型变量到SHDirOp.pFromhe SHDirOp.pTo结果无法完成copy,直接写路径就可以
这个问题必须使用LPCSTR做一次中转,解决办法:
char pfrom[200]; char pto[200]; ZeroMemory(pfrom,200); ZeroMemory(pto,200); strcpy(pfrom,(LPCSTR)from.c_str()); strcpy(pto,(LPCSTR)to.c_str());
No comments :
Post a Comment