我今天开始使用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()有什么区别?
答案 0 :(得分:0)
我还必须同时在文件系统上对文件进行fopen()和fclose()吗?
否,您只能使用zip_source_file()
。
从您的评论中我认为您有正确的总体思路,但可能有一些细节使它失败。确保在每次libzip调用之后执行所有error checking the documentation suggests,以便获得有关导致失败的更多信息。
您还可以将您的代码与https://gist.github.com/clalancette/bb5069a09c609e2d33c9858fcc6e170e
进行比较