gpt4 book ai didi

c++ - 使用 libzip 将文件解压缩到磁盘

转载 作者:行者123 更新时间:2023-12-01 14:50:48 24 4
gpt4 key购买 nike

我正在尝试使用 c++ 和 libzip 库解压缩一个可执行文件。从罗德里戈对类似问题的回答开始,我来到了这个示例代码:

#include <zip.h>
int main()
{
//Open the ZIP archive
int err = 0;
zip *z = zip_open("foo.zip", 0, &err);

//Search for the file of given name
const char *name = "file.txt";
struct zip_stat st;
zip_stat_init(&st);
zip_stat(z, name, 0, &st);

//Alloc memory for its uncompressed contents
char *contents = new char[st.size];

//Read the compressed file
zip_file *f = zip_fopen(z, "file.txt", 0);
zip_fread(f, contents, st.size);
zip_fclose(f);

//And close the archive
zip_close(z);
}

据我了解,此代码确实可以解压缩文件,但我不知道如何将该文件写入磁盘,就像使用 winzip 之类的工具提取 zip 文件一样。将解压缩的数据放在内存中对我没有帮助,但我一直无法弄清楚如何将文件实际放到磁盘上。

最佳答案

像这样的事情应该这样做:

if(!std::ofstream("file1.txt").write(contents, st.size))
{
std::cerr << "Error writing file" << '\n';
return EXIT_FAILURE;
}

查找 std::ofstream .

当然你应该检查你所有的 zip file 函数以在继续之前查看它们是否返回错误。

关于c++ - 使用 libzip 将文件解压缩到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com