了解libzip的工作原理

时间:2015-11-18 19:58:44

标签: linux archive libzip

我今天开始使用libzip库。但我不明白libzip的工作原理。

我的重点是用所有文件和目录压缩目录  到一个zip文件。

因此,我从zip_open()开始,然后我阅读了目录  内容并将所有带有zip_dir_add()的目录添加到存档中。  之后,我用zip_close()关闭了zip文件。一切都是  精细。下一步应该是将所有文件添加到存档中  zip_file_add()。但它不起作用。关闭文件的最后一步  失败。

好的,我忘了创建一个zip_source来完成这项工作。我加了一个  在获取此源(zip_source_file())之前声明一行。但  它仍然没有用。

我的想法有什么问题?我是否还需要fopen()fclose()文件系统上的文件?

zip_source_file()和zip_source_filep()有什么区别?

1 个答案:

答案 0 :(得分:0)

  

我还必须同时在文件系统上对文件进行fopen()和fclose()吗?

否,您只能使用zip_source_file()

从您的评论中我认为您有正确的总体思路,但可能有一些细节使它失败。确保在每次libzip调用之后执行所有error checking the documentation suggests,以便获得有关导致失败的更多信息。

您还可以将您的代码与https://gist.github.com/clalancette/bb5069a09c609e2d33c9858fcc6e170e

进行比较