vc解压和载入zip资源包方法

提示:

这种方法解压后会释放所有文件在你选择的路径下,但是有个缺点是不会删除解压的文件

需要在项目中添加XUnzip.cpp和XUnzip.h代码:(需要的朋友可留言)

//载入zip资源包
BOOL ui_dlg_main::LoadZipFileToDir(LPSTR lpDir) //lpDir为载入资源包的路径
{
	OPENFILENAMEA ofn = { 0 };
	char strFileName[MAX_PATH] = "";
	memset(&ofn, 0, sizeof(OPENFILENAME));
	memset(strFileName, 0, sizeof(char)*MAX_PATH);
	ofn.lStructSize = sizeof(OPENFILENAME);
	ofn.lpstrFilter = "配置(*.zip)";
	ofn.lpstrFile = strFileName;
	ofn.nFilterIndex = 1;
	ofn.nMaxFile = MAX_PATH;
	ofn.Flags = OFN_FILEMUSTEXIST;
	BOOL ret = GetOpenFileNameA(&ofn);
	LPSTR lpZipPath = NULL;
	if (ret)
	{
		lpZipPath = ofn.lpstrFile;//json_name为打开文件的完整路径
	}
	if (lpZipPath == NULL)
	{
		return FALSE;
	}
	HZIP hz = OpenZip(CA2W(lpZipPath),0, ZIP_FILENAME);
	if( hz )
	{
		ZIPENTRYW ze;
		GetZipItem(hz,-1,&ze);
		int numitems=ze.index;
		// -1 gives overall information about the zipfile
		std::vector< std::wstring > vts;
		for (int zi=0; zi<numitems; zi++)
		{
			ZIPENTRYW ze;
			GetZipItemW(hz,zi,&ze); // fetch individual details
			boost::filesystem::path path_dst = lpDir;
			path_dst /= ze.name;
			vts.push_back( ze.name );
			boost::filesystem::path path_dir = path_dst.parent_path();
			if ( !boost::filesystem::exists ( path_dir ) )
			{
				boost::filesystem::create_directories( path_dir);
			}

			ZRESULT zr = UnzipItem(hz, ze.index, ATL::CA2W(path_dst.string().c_str()), 0 , ZIP_FILENAME );         // e.g. the item's name.
		}
		CloseZip(hz);
		hz = NULL;
		MessageBoxA(NULL,"导入成功","提示",MB_OK);
		return TRUE;
	}
	return FALSE;
}
时间: 2024-10-09 15:25:19

vc解压和载入zip资源包方法的相关文章

在Ubuntu系统中解压rar和zip文件的方法

大家在以前的windows系统中会存有很多rar和zip格式的压缩文件,Ubuntu系统默认情况下对这些文件的支持不是很好,如果直接用"归档管理器"打开会提示错误,因此今天跟大家分享一下如何在Ubuntu中解压这两种格式的压缩文件: 我们需要安装两款软件:1.7zip:2.Ark,这两款软件在Ubuntu的软件中心都有下载: 打开软件中心搜索rar,在列表中找到它们,直接安装就可以- 安装完成后,就可以直接双击打开rar和zip格式的文件了,即使是中文格式也不会报错- 如果要解压,鼠标

支持文件的流式压缩/解压IP*Works! Zip

IP*Works! Zip是为应用程序添加压缩功能的完全可控件组件包.使用简单.速度快并且效率很高,是一个为桌面和网上应用程序添加压缩和解压缩功能的组件套包./n software IP*Works! Zip支持Zip.Tar.Gzip 和 Jar压缩标准,特别的,它支持流式压缩.加密压缩,在压缩包里就可以直接删除文件.我们目前提供完全可控的纯C# .NET组件.纯Java Beans. 产品特征: IP*Works! Zip基于纯C#代码,是完全可控的.NET组件,不依赖于任何外部代码.是完全

Java解压上传zip或rar文件,并解压遍历文件中的html的路径

1.本文只提供了一个功能的代码 public String addFreeMarker() throws Exception { HttpSession session = request.getSession(); User user = (User) session.getAttribute(Constant.USER_SESSION_KEY); String realName = user.getRealName(); System.out.println("--------获取登录用户信

C#压缩或解压(rar和zip文件)

/// <summary> /// 解压RAR和ZIP文件(需存在Winrar.exe(只要自己电脑上可以解压或压缩文件就存在Winrar.exe)) /// </summary> /// <param name="UnPath">解压后文件保存目录</param> /// <param name="rarPathName">待解压文件存放绝对路径(包括文件名称)</param> /// <

python-----自动解压并删除zip文件

如何自动解压并删除zip? 如何解压  →  使用内置模块来实现(shutil.unpack_archive) 如何删除zip  →  使用内置模块os来实现(os.remove) 如何监测zip的出现  →  如何判断某文件是zip(s.split('.'[-1]) /  如何让函数每一秒都执行(while True) 以下代码素材自取:链接:https://pan.baidu.com/s/1t6i5W0jATSdze3sPAe4sNg  提取码:0npb import os import s

PHP解压函数gzdecode和gzinflate使用方法

PHP解压函数gzdecode和gzinflate使用方法技术 maybe yes 发表于2015-01-21 00:11 原文链接 : http://blog.lmlphp.com/archives/65  来自 : LMLPHP后院 PHP 5.4 之后新增的 gzip 解压函数 gzdecode 使用方法,gzdecode - Decodes a gzip compressed string,解压一个使用 gzip 压缩的字符串,这是官网手册上面写到的. 目前很多的空间服务商的 PHP 版

如何在Linux下创建与解压,安装zip, tar, tar.gz和tar.bz2文件

zip可能是目前使用得最多的文档压缩格式.它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用.缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好.闲话少说,我们步入正题吧: 我们可以使用下列的命令压缩一个目录: # zip -r archive_name.zip directory_to_compress 下面是如果解压一个zip文档: # unzip archive_name.zip TAR Tar是在Linux中使用

hadoop streaming -archives 解压jar、zip、tar.gz的验证

1.archives作用描述: Hadoop中DistributedCache方法之一(其他参考文章后面的参考文章) ,作用是 将指定文件分发到各个Task的工作目录下,并对名称后缀为".jar".".zip",".tar.gz".".tgz"的文件自动解压,默认情况下,解压后的内容存放到工作目录下名称为解压前文件名的目录中,比如压缩包为dict.zip,则解压后内容存放到目录dict.zip中.为此,你可以给文件起个别名/软

java解压多目录Zip文件(解决中文乱码问题)--转载

原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import org.apache.tools.zi