2015-04-04 54 views
1

我开始学习libzip今天一切都进行得很顺利,它只是我不能得到zip_name_locate工作,我无法找到任何教程/示例/文档即解释它(很好的文档,但我不能得到它的工作)。 Documentation 1Documentation 2(我不能得到任何的这些工作,文档第2页也有,显然还没有在我的范围被宣布一些枚举)libzip功能查找文件名的索引不起作用C++

因此,首先,我的zip压缩包打开正确的,因为我可以代替并向其中添加文件。我有终端输出,显示索引的路径(来自zip_get_name函数)。

归档文件数:3
虚拟/
虚拟/ dummy1/
虚拟/ dummy1/dummytxt

不管哪个这些我试图找到的指数之一,我总是得到“虚设/”,其为0的指数,我也试着与所有不同枚举 (ZIP_FL_COMPRESSED,ZIP_FL_ENCRYPTED,ZIP_FL_NOCASE,ZIP_FL_NODIR,ZIP_FL_RECOMPRESS,ZIP_FL_UNCHANGED和0)。

(这个 “虚拟/ dummy1 /” 返回0,根据zip_get_name这是 “假/”)

我将是任何帮助,非常感谢。

回答

0

好的所以我发现了一个“替代方法”利用zip_stat结构。

struct zip_stat stat; 
zip_stat_init(&stat); 
zip_stat(zipPointer, "dummy/dummy1/dummytxt", 0, &stat); 
std::cout << "name= " <<stat.name << ", index= " << stat.index << std::endl; 

这将打印“name = dummy/dummy1/dummytxt,index = 2”。您也可以使用“zip_stat_index”通过索引来构建zip_stat结构。 在这里,你有一些关于zip_stat结构的文档,你可以使用它,它似乎非常有用。 Documentation1,Documentation2,Documentation3

哦,还有,如果你有问题,调试器说这个stat没有在这个范围内声明,请确保你这样写:struct zip_stat stat;。您可能错过了宣言前面的结构。