|
1
6
这里有两个问题
在文件格式上,您不能使用。ZIP格式是因为。ZIP将目录放在文件的末尾。这意味着你必须下载整个文件才能知道里面有什么。Zip有你可以扫描的标题,但这些标题不是文件中内容的官方列表。 Zip明确地将目录放在末尾,因为它允许快速添加文件。 假设您有一个包含文件“a”、“b”和“c”的zip文件。您要更新“c”。在zip中读取目录、附加新的c、写入指向新的'c'的新目录,但旧的'c]仍在文件中,这是完全有效的。如果你扫描标题,你最终会看到旧的“c”,因为它仍然在文件中。 这种附加功能是zip的明确设计目标。它来自20世纪80年代,当时一个zip可以跨越多张软盘。如果你需要添加一个文件,仅仅为了重写整个zip文件就必须读取所有N张光盘,这会很糟糕。因此,该格式只允许您将更新的文件附加到末尾,这意味着它只需要最后一张光盘。它只是读取旧的TOC,附加新文件,写入新的TOC。 Gzip压缩的tar文件没有这个问题。Tar文件存储在头、文件、头文件中,压缩是在其之上的,因此可以在下载文件时解压缩,并在文件可用时使用这些文件。您可以在windows中使用winrar(商业)或7-zip(免费)轻松创建gzip压缩的tar文件,在linux、osx和cygwin上使用tar命令。 关于要编写的代码, O3D做到了这一点,并且是开源的,所以你可以查看代码 http://o3d.googlecode.com 解压缩代码位于o3d/import/cross/中。..
|
|
|
2
5
看看 boost::zlib filters 他们利用 zlib 啪的一声。 以下是boost文档中的示例,它将解压缩文件并将其写入控制台:
|
|
|
3
2
|
|
|
Greg · 即使更新比先决条件更新,也要进行静态lib存档 2 年前 |
|
|
justinian482 · 在管道中获取md5sum 3 年前 |
|
|
Kacper Rutkowski · 能够将数据附加到文件的存档格式 3 年前 |
|
|
ieure · 为什么TAR文件比其内容小? 17 年前 |