数日、ZIPアーカイブ内のすべてのファイルをC++の別のファイルに移動するだけのライブラリを探しています。libzipを見つけましたが、名前を知っているファイルの方が良いです。時間がかかりすぎない限り、アーカイブAとアーカイブBの間の手順は気にしません。(可能であれば、一時フォルダー内のファイルを削除します)。そして、私はポータブルライブラリを好みます。
ありがとうございます!
Libzip がおそらく最善の策です。
を使用zip_get_num_entries
してアーカイブ内のファイル数を取得し、次に を使用zip_get_name
して特定のファイルのファイル名を取得できます。zip_fopen_index
アーカイブ内のファイルを開き、ファイルをzip_fread
読み取り (そしてディスクまたは別の zip アーカイブに保存)、完了zip_fclose
したらファイルを閉じるために使用します。アーカイブからファイルを削除する場合は、zip_delete
.
最高のインデックスからインデックス 0 まで、すべてのファイルに対してループでこれを続けます。
Windows 上の libzip については、たとえばこの回答を参照してください(または、うまくいかない場合は、この回答を参照してください)。