2015-04-04 56 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;。您可能錯過了宣言前面的結構。