2013-02-01 27 views
0

我正在搜索一個庫,只需將ZIP歸檔中的所有文件移動到C++中的另一個文件。我發現了libzip,但是對於一些知道名稱的文件來說更好。我不關心檔案A和檔案B之間的步驟,只要它不需要太多時間。 (如果可能,它會刪除臨時文件夾中的文件)。我更喜歡便攜式圖書館。將所有文件從一個ZIP歸檔移動到另一個

謝謝你!

+0

爲什麼不讓你的生活變得更簡單,寫一點腳本?然後你可以在你的C++程序中使用'system'函數來執行這個腳本。 –

+0

你在什麼系統上?根據unix/windows,答案會有很大的不同。 –

+0

因爲我希望我的程序是可移植的。如果只用於Linux,那很容易。但它也適用於Windows,並且沒有相應的zip/unzip。 – Tiwenty

回答

1

Libzip可能是最好的選擇。

您可以使用zip_get_num_entries獲取檔案中的文件數量,然後使用zip_get_name獲取特定文件的文件名。使用zip_fopen_index打開存檔中的文件,zip_fread以讀取該文件(並保存到磁盤或另一個zip存檔),並在完成時關閉文件zip_fclose。如果要從檔案中刪除文件,請使用zip_delete

繼續在所有文件的循環中執行此操作,從最高索引開始到索引零。


至於Windows上的libzip,請參閱this answer(或者如果它不工作this one)。

+0

哦,我錯過了錯誤的方式尋找這些功能!謝謝! – Tiwenty

+0

感謝您的精確度,但我已經在Windows上用CMake構建了zlib和libzip ;-) – Tiwenty

相關問題