【问题标题】:Move all the files from a ZIP archive to another将所有文件从 ZIP 存档移动到另一个
【发布时间】:2013-02-01 17:11:24
【问题描述】:

我正在寻找一个库,只需将 ZIP 存档中的所有文件移动到 C++ 中的另一个库。我找到了 libzip,但最好只用于某些您知道名称的文件。我不关心档案 A 和档案 B 之间的步骤,只要它不会花费太多时间。 (如果可能,它将删除其临时文件夹中的文件)。而且我更喜欢便携式库。

谢谢!

【问题讨论】:

  • 为什么不让你的生活变得更简单,写一个小脚本呢?然后,您可以在 C++ 程序中使用 system 函数来执行此脚本。
  • 你在什么系统上?答案会因 unix/windows 的不同而有很大差异。
  • 因为我希望我的程序是可移植的。如果它只适用于 Linux,那将很容易。但它也适用于 Windows,并且没有 zip/unzip 等价物。

标签: c++ zip unzip


【解决方案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)。

【讨论】:

  • 哦,我通过错误的方式搜索错过了这些功能!谢谢!
  • 感谢您的精确,但我已经使用 CMake 在 Windows 上构建了 zlib 和 libzip ;-)
猜你喜欢
  • 2019-03-21
  • 2023-01-30
  • 1970-01-01
  • 2021-09-06
  • 1970-01-01
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多