我正在寻找一种方法来添加或删除现有ZIP归档文件中的文件,或者任何其他跨平台API支持的归档格式,而不必每次重新编写包含新文件或删除文件后的新zip文件。对于ZIP文件,目录被放置在文件末尾,因此每次可能需要重写zip文件的某些部分。我只是想避免每次都要重新编写整个文件。我要处理的归档文件将非常大,速度很重要。
是否存在任何可实现我所需功能的C++库?
Zipios++ 提供了直接访问 ZIP 归档文件中的文件的功能。
miniz库允许您通过一个函数调用将文件附加到现有存档而无需重写它:
mz_zip_error error = MZ_ZIP_NO_ERROR;
mz_bool status = mz_zip_add_mem_to_archive_file_in_place_v2("foo.zip", "bar.txt", "Test", 4, "Comment", 7, MZ_BEST_COMPRESSION, &error);