【问题标题】:Copy folder & contents from inside zip into another location with QuaZIP?使用 QuaZIP 将 zip 内部的文件夹和内容复制到另一个位置?
【发布时间】:2013-07-16 09:01:03
【问题描述】:

我将如何从 zip 中复制文件夹(和文件夹的内容)并将复制的文件夹版本移动到不同的位置?

我没有在 QuaZipDir 中看到任何允许您执行此操作的函数。我希望有一种比解析文件然后创建和写入更简单的方法。

例如,如果 zip 看起来像这样:

  • 邮编
    • 文件夹
      • 文件 #1
      • 文件 #2
      • 文件 #3

我再次使用 QuaZIPQt

【问题讨论】:

    标签: c++ qt directory quazip


    【解决方案1】:

    从逻辑上讲,您可以将要复制的文件解压缩到硬盘上的临时位置,然后将它们复制回新位置的 zip 文件。从临时位置复制到新位置后,您可以删除临时文件。我认为这是许多文件压缩工具对文件操作所做的。从理论上讲,您可以将文件复制到内存中,然后将它们从内存中添加到 zip 文件中的新位置,但这对于不适合 RAM 的较大文件来说可能是冒险的。我会让操作系统处理与磁盘之间的缓冲,而不是尝试自己实现。

    【讨论】:

    • 如何提取文件?我似乎找不到任何示例。
    • 看看quazip.sourceforge.net/classJlCompress.html。您需要列出 zip 文件中的文件,然后对要提取的文件运行 extractFile 或 extractFiles。
    • 完美。我不知道为什么我一直在避免这种情况。我在 zip 上使用了 extractDir,但它没有提取 zip 内目录中的项目。这是设计使然,还是我做错了什么?
    • 您可能需要递归遍历所有子目录并为每个目录运行 extractDir,直到访问完所有目录。
    • 我发现了问题所在。我不得不删除 JlCompress.cpp 中的第 421 行。它在不应该的时候回来了。也许我只是用错了,但它现在工作得很好!感谢您建议使用 JlCompress 中的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    相关资源
    最近更新 更多