我正在寻找一种方法来向/从现有 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);