#include "zlib.h"
#include "zip.h"
#include <fstream>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdlib.h>
int main()
{
int errno = 0;
struct zip *pZip;
pZip = zip_open("./txt.zip", 0, &errno);
int fileCount;
fileCount = zip_get_num_files(pZip);
printf("fileCount = %d\n",fileCount);
for (unsigned int i = 0; i < fileCount ; i++) {
struct zip_stat zipStat = {0};
zip_stat_init(&zipStat);
zip_stat_index(pZip, i, 0, &zipStat);
printf("%dth file name is [%s]\n",i,zipStat.name);
if (zipStat.name[strlen(zipStat.name) -1] == '/') {
std::string cmd = "rm -rf ";
cmd += zipStat.name;
system(cmd.c_str());
mkdir(zipStat.name, 777);
continue;
}
struct zip_file *pzipFile = zip_fopen_index(pZip, i, 0);
char *buf = new char[zipStat.size];
zip_fread(pzipFile, buf, zipStat.size);
std::fstream fs;
fs.open(zipStat.name, std::fstream::binary | std::fstream::out);
fs.write(buf,zipStat.size);
fs.close();
printf("file content[%s\n]", buf);
}
return 0;
}
libzip的使用
最新推荐文章于 2024-07-22 01:00:00 发布