📄 openzipfile.cpp
字号:
// OpenZipFile.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include "unzip.h"
#define MAX_ZPATH 256
unzFile OpenZipFile(char *zipfile,char* openfile)
{
unz_global_info gi;
unz_file_info file_info;
char filename_inzip[MAX_ZPATH];
unzFile uf = unzOpen(zipfile); //打开zip文件
int err = unzGetGlobalInfo (uf,&gi); //获取zip压缩文件信息
if (err != UNZ_OK)
return NULL;
unzGoToFirstFile(uf); //移动文件指针到第一个文件
for (unsigned long i = 0; i < gi.number_entry; i++)
{
//取出当前文件信息,文件名称
err = unzGetCurrentFileInfo(uf, &file_info, filename_inzip, sizeof(filename_inzip), NULL, 0, NULL, 0);
if (err != UNZ_OK) {
break;
}
if(strcmp(filename_inzip,openfile))
unzGoToNextFile(uf); //移动文件指针到zip下一个文件
}
unzOpenCurrentFile(uf); //打开当前文件
return uf;
}
void CloseZipFile(unzFile uf)
{
unzClose(uf);
}
//这个函数仅仅是演示作用,文件不能是非文本文件。或者太大
void PrintZipFile(unzFile uf)
{
char filename_inzip[MAX_ZPATH];
unz_file_info file_info;
int err = unzGetCurrentFileInfo(uf, &file_info, filename_inzip, sizeof(filename_inzip), NULL, 0, NULL, 0);
int len = file_info.uncompressed_size;
char* buffer = (char*)malloc(len+1);
unzReadCurrentFile(uf,buffer,len);
buffer[len] = '\0';
printf("文件内容:%s\n",buffer);
free(buffer);
unzCloseCurrentFile(uf);
}
int _tmain(int argc, _TCHAR* argv[])
{
unzFile uf = OpenZipFile("test.zip","test2.txt");
PrintZipFile(uf);
CloseZipFile(uf);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -