小编Luc*_*s B的帖子

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

我正在尝试使用 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);
}
Run Code Online (Sandbox Code Playgroud)

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

c++ libzip

6
推荐指数
1
解决办法
6060
查看次数

在内存中加载大量结果集的最佳方法是什么?

我正在尝试加载来自不同RDBMS的2个巨大的结果集(源和目标),但我正在努力的问题是在内存中获得这2个巨大的结果集.

下面考虑从源和目标中提取数据的查询:

Total jobs running in parallel = 3

Time taken by Job1 = 01:47:25

Time taken by Job1 = 01:47:25

Time taken by Job1 = 01:48:32

There is no index on Id Column.
Run Code Online (Sandbox Code Playgroud)

来源: 12377200

目标记录: 12266800

以下是我尝试过的一些统计方法:

1)2个开放数据读取器方法,用于读取源和目标数据:

   Total jobs = 1
   Chunk size : 100000
   Time Taken : 02:02:48
   There is no index on Id Column.
Run Code Online (Sandbox Code Playgroud)

select Id as LinkedColumn,CompareColumn from Source order by LinkedColumn 这很糟糕.

2)通过块读取方法来读取源和目标数据的块:

   Total jobs = 1
   Chunk size : …
Run Code Online (Sandbox Code Playgroud)

c# ado.net datareader bigdata

6
推荐指数
1
解决办法
7914
查看次数

标签 统计

ado.net ×1

bigdata ×1

c# ×1

c++ ×1

datareader ×1

libzip ×1