繁体   English   中英

用于查找文件名索引的libzip函数不起作用C ++

[英]libzip function to find index of filename doesn't work c++

我今天开始学习libzip,一切进展顺利,只是我无法使zip_name_locate正常工作,也找不到任何解释它的教程/示例/文档(文档虽然很好,但我无法理解它)工作)。 文档1文档2 (我无法使用其中的任何一个,“文档2”页面上也有一些枚举,显然没有在我的范围内声明)

因此,首先,我的zip存档可以正确打开,因为我可以对其进行替换和添加文件。 我有显示索引路径的终端输出(来自zip_get_name函数)。

存档文件数:3
假/
虚拟/ dummy1 /
虚设/ dummy1 / dummytxt

无论我尝试查找其中哪一个索引,我总会得到“ dummy /”的索引,该索引为0,我也尝试了所有不同的枚举(ZIP_FL_COMPRESSED,ZIP_FL_ENCRYPTED,ZIP_FL_NOCASE,ZIP_FL_NODIR,ZIP_FL_RECOMPRESS,ZIP_FL_UNCHANGED和0)。

(此“ dummy / dummy1 /”返回0,根据zip_get_name的值为“ dummy /”)

我将非常感谢您的帮助。

好吧,所以我找到了使用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;

这将显示“名称=虚拟/ dummy1 / dummytxt,索引= 2”。 您也可以使用“ zip_stat_index”代替通过索引来构建zip_stat结构。 在这里,您有一些有关zip_stat结构的文档及其用途,它似乎非常有用。 文档1文档2文档3

哦,如果调试器说未在此范围内声明stat时遇到问题,请确保按以下方式编写: struct zip_stat stat; 您可能已经错过了声明前面的结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM