如何修改非常大的 zip 中的单个文件而不重写整个 zip?

2023-11-27

我有包含巨大文件的大型 zip 文件。 zip 存档中有一些需要修改的“元数据”文本文件。但是,无法提取整个 zip 并重新压缩它。我需要在 zip 中找到目标文本文件,对其进行编辑,并可能将更改附加到 zip 文件中。文本文件的文件名始终相同,因此可以进行硬编码。这可能吗?有没有更好的办法?


有两种方法。首先,如果您只是想避免重新压缩整个 zip 文件,则可以使用任何现有的 zip 实用程序来更新存档中的单个文件。这将需要有效地复制整个存档并使用替换的条目创建一个新存档,然后删除旧的 zip 文件。这不会重新压缩未被替换的数据,因此应该相对较快。至少,复制 zip 存档所需的时间大约相同。

如果您想避免复制整个 zip 文件,则可以通过将 zip 文件中的本地和中央标头中的名称(保持名称长度相同)更改为您赢得的名称来有效删除要替换的条目否则不要使用,这表明该文件应该被忽略。例如。用波形符替换名称的第一个字符。然后您可以使用更新的文本文件附加一个新条目。这需要重写 zip 文件末尾的中心目录,该目录非常小。

(另一个答案中建议不要引用中央目录中不需要的条目不一定有效,具体取决于用于读取 zip 文件的实用程序。某些实用程序将读取 zip 文件条目信息的本地标头,并忽略中央目录。其他实用程序将执行相反的操作。因此本地和中央条目信息应保持同步。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修改非常大的 zip 中的单个文件而不重写整个 zip? 的相关文章

  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 当我们想要返回对象的引用时,为什么我们在赋值运算符中返回 *this 而通常(而不是 this)?

    我正在学习 C 和指针 我以为我理解了指针 直到我看到这个 一方面 asterix 运算符是解引用的 这意味着它返回值所指向的地址中的值 而与号 运算符则相反 它返回值存储的地址记忆 现在阅读有关赋值重载的内 容 它说 我们返回 this因
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没
  • 当我使用 OpenSSL1.1.0g 根据固定的 p 和 g 值创建 Diffie Hellman 密钥协议密钥时,应该执行哪些检查?

    您好 我尝试通过这段代码使用修复 p 和 g 参数来制作 Diffie Hellman Keysanswer https stackoverflow com a 54538811 4706711 include

随机推荐

  • 使用正则表达式过滤脏话(100 个单词的列表)

    从给定的字符串中删除亵渎单词的正确方法是什么 1 我有一个包含 100 个单词的列表 需要在字符串数组中查找 2 处理部分单词的正确方法是什么 大多数人如何处理这个问题 例如 质量 这个词 有时 部分单词也不好 假设 foobar 是一个极
  • 为什么不能将 RandomAccessFile 转换为 Inputstream?

    当我执行此转换时出现编译错误 RandomAccessFile raf new RandomAccessFile InputStream is InputStream raf RandomAccessFile应该是子类InputStream
  • 如何为浏览器提供“图像另存为”选项按钮

    我正在做一个画布绘图项目 我将画布转换为图像 然后将该图像另存为 png 我必须右键单击图像并选择 图像另存为 选项 但我想通过一个按钮提供该选项 当我单击按钮时 它应该被保存 任何例子或想法将不胜感激 这是一个将canvas转换为png的
  • Xamarin EditText 输入类型 密码

    我有一些EditText从 JSON 文件创建的字段 因此我无法更改 XML 文件 但我想要一些EditText输入类型为 密码 的字段 我在 Xamarin Studio 中使用 C 工作 我得到了类似的东西 但不起作用 editText
  • 如何在引导程序中将徽章放置在“媒体”的右下角?

    使用引导程序media功能 我如何放置badge在媒体块图像的右下角 所以它在图像的顶部 有了这样的标记 div class media a class pull left href img class media object src h
  • 使用 AppleScript 修改设置/系统首选项

    我正在尝试制作一个可以切换空间自动重新排列的 AppleScript 我能够让 AppleScript 打开系统首选项并进入任务控制设置 但是我不确定如何选中我想要更改的框 tell application System Preferenc
  • 根据路线动态插入 CSS 类到导航栏

    Vue 2 和 Vue Router 2 我正在尝试根据访问的路线更改应用程序导航栏的颜色 这是我所拥有的 main js import App from components App vue const app new Vue route
  • Excel VBA 打开 Word 模板,填充,然后在其他位置另存为 .docx 文件

    我创建了一个带有占位符 例如 的 Word 模板 然后我可以将其自动替换为 Excel 宏 当我再次尝试此过程时 Word 文档现在打开 显示它是只读文档 我该如何保存我的 Word 模板以便对其进行编辑 另外 当我通过excel宏打开wo
  • 尝试使用 GNU GMP 库中的类型作为 Bison 的 yylval 类型时出错

    我正在尝试使用该类型mpz t来自 GMP 库的类型yylval通过在 Bison 文件中包含以下内容 define api value type mpz t 我检查了生成的解析器 它正确生成了该行typedef mpz t YYSTYPE
  • Django 1.4 - {{ request.user.username}} 不在模板中呈现

    在我看来 我可以打印request user username 但是在模板中 request user username 不会出现 为了简单起见 我从函数中删除了逻辑 并导入 render to response 和 RequestCont
  • 错误“超出最大更新深度。当组件在 useEffect 中调用 setState 时可能会发生这种情况”

    每当调用我的购物车组件 也如下所示 时 我都会遇到此错误 重复数千次 直到页面崩溃 index js 1 Warning Maximum update depth exceeded This can happen when a compon
  • 如何根据依赖关系进行排序?

    我有一个类 其中包含指向相同基类型的其他类的 依赖项 列表 class Foo Base dependencies class Bar Base dependencies Foo class Baz Base dependencies Ba
  • PyInstaller 文件无法执行脚本 - DistributionNotFound

    我正在尝试使用 PyInstaller 将 python 文件转换为可执行文件 该程序使用谷歌云翻译 API在语言之间翻译给定文本 跑步时python quicktrans py在终端中 程序运行良好 然后我跑了pyinstaller qu
  • Xcode - 未连接配置的 iOS 设备

    今天下午我正在使用 Xcode 并在我的设备上调试应用程序 效果很好 当我从办公室回到家并插入手机继续工作时 XCode 将不再让我在设备上进行调试 我收到的错误是 Error Starting Executable No provisio
  • Pandas 最大值指数

    我有一个混合了屏幕名称 推文 收藏夹等的 Pandas DataFrame 我想找到 favcount 的最大值 我已经完成了 并返回该 推文 的屏幕名称 df pd DataFrame df timestamp timestamp df
  • SSRS如何添加新行

    我正在从这样的存储过程创建一个字符串Name1 Name2 Name 3 等等 该字符串位于一列中 我想在 SSRS 报告中的新行中显示这些名称 例如 Name1 Name2 Name3 我尝试将字符串更改为 Name1 VbCrlf Na
  • 从 http 基本身份验证中排除特定的 cakephp 控制器

    我试图排除路径 URI 被基本 http 身份验证阻止 路径是 rest http example com rest 并代表 cakephp 3 应用程序的控制器 它不是一个真实的文件 而是一个由重写条件重写并由 webroot 目录中的
  • r sf包多边形内的质心

    我需要向多边形添加标签 并且通常使用质心 但是质心不会落在多边形内 我发现这个问题计算 SpatialPolygon 内 内部的质心但我正在使用 sf 包 下面是玩具数据 rm list ls all TRUE start with emp
  • 绘制矩形和Interface Builder之间的颜色差异?

    简而言之 我在界面生成器中有 2 个视图 其中一个使用界面生成器中的 RGB 滑块设置为颜色 99 99 99 另一个视图以编程方式着色以实现某种形状 我使用以下方式填充它 Obviously this is in drawRect UIC
  • 如何修改非常大的 zip 中的单个文件而不重写整个 zip?

    我有包含巨大文件的大型 zip 文件 zip 存档中有一些需要修改的 元数据 文本文件 但是 无法提取整个 zip 并重新压缩它 我需要在 zip 中找到目标文本文件 对其进行编辑 并可能将更改附加到 zip 文件中 文本文件的文件名始终相