用C ++创建一个空的.zip文件

时间:2014-05-01 10:36:03

标签: c++ windows file compression

我正在使用this页面中的代码段,介绍如何创建zip文件以及将目录添加到该zip文件中。我在Windows 7上运行以下内容,但它似乎根本没有创建zip文件。

BSTR bstrFolderOutName = L"C:\\Test\\Archive.zip";
BYTE startBuffer[] = {80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
FILE *f = _wfopen(bstrFolderOutName, L"wb");
fwrite(startBuffer,sizeof(startBuffer),1,f);
fclose(f); 

1 个答案:

答案 0 :(得分:1)

声明的问题,即没有创建文件,无法用给出的信息回答。这很可能是由于文件路径无效。但是,OP在评论中声明他的示例中的路径不是真正的代码


编辑:我刚才引用的hex string example错误,我刚刚测试过。

此代码有效:

#include <stdio.h>

auto main() -> int
{
    FILE* f = fopen("foo.zip", "wb");
    //fwrite( "\x80\x75\x05\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 22, 1, f );
    fwrite( "\x50\x4B\x05\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 22, 1, f );
    fclose(f);
}

Harumph,人们甚至不能信任Stack Overflow评论。更不用说接受的答案了。


原始文字

假设OP现在编辑了代码,以便下面的部分是真实代码,那么这个常量

{80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

不同
"\x80\x75\x05\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"

OP能否发现相关的差异?

此外,鉴于此,OP能否推断出有关其信息来源的任何内容?

我来自a comment elsewhere的例子。