在没有解压缩的情况下以zip方式读取文件(c ++)

时间:2015-09-29 13:11:39

标签: c++ zip

我可以用c ++读取文件。这是我的代码:

std::string ReadFile(std::string file)
{
    char buff[20480];
    std::ifstream fread(file, std::ios::binary | std::ios::app);
    fread.read(buff,sizeof(buff));
    std::string str = buff;
    fread.close();
    return str;
}

变量" file"是FilePath。我得到一个文件夹.zip,我想读取文件夹中的文件。我该怎么办?我尝试使用libzip,但它无法解决我的问题,也许我没有以错误的方式使用它。

3 个答案:

答案 0 :(得分:0)

除非您有权访问允许解压缩文件的API,否则我不会直接看到代码中的内容。 如果你很懒,你可以用你喜欢的任何语言编写一个小脚本来解压缩,然后在解压缩文件中调用你的程序

答案 1 :(得分:0)

假设您已解压缩。你尝试过类似的东西吗?

FILE * file = popen("unzip -p filename", "r");

同样,popen("gzip -f filename", "r")应该适用于gzip。

为了解析输出,我引用了this post(带有Windows提示)。我不知道更多C ++风格的做法。

答案 2 :(得分:0)

没有。要解压缩文件,您必须解压缩文件。

您不需要调用unzip实用程序来执行此操作:有些库可以通过流API公开解压缩,从而导致代码看起来与您编写的内容非常相似以上。但是您需要安装并学习如何使用这些库。