2

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

我的重点是将包含所有文件和目录的目录压缩到一个 zip 文件中。

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

好的,我忘了创建一个 zip_source 来完成这项工作。我在前一行添加了一条语句来获取此来源(zip_source_file())。但它仍然不起作用。

我的想法有什么问题?我还必须fopen()fclose()文件系统上的文件吗?

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

4

1 回答 1

1

我是否还必须 fopen() 和 fclose() 文件系统上的文件?

不,您可以只使用zip_source_file().

从您的评论中,我认为您的总体思路是正确的,但可能有一些细节导致它失败。确保在每次 libzip 调用后执行文档建议的所有错误检查,以便获得有关导致它失败的原因的更多信息。

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

于 2019-06-06T02:10:39.557 回答