2

情况

  • 我有一个 .zip 文件。在这个 .zip 中是一个文件夹“dist/”,在文件夹“dist/”中有两件事:1)另一个文件夹“lib/”2)一个 jar 文件
  • 我打开 .zip 并提取 dist/jar 文件。一个“新”文件夹将出现在我的磁盘“dist”上,其中包含 jar
  • 我用 ZipArchive 打开 jar 文件并在需要的地方进行编辑。编辑由 addFromString() 保存

现在到了关键部分

  • 我想将 jar 文件重新添加到 .zip
  • 我这样做是通过 $zip->addFile($newdir . 'dist/' . $corefile, 'dist/' . $corefile)

在哪里:

  • $newdir 是我本地磁盘上“新”dist/ 文件夹的绝对路径,其中包含提取/编辑的 jar 文件
  • $corefile 是提取/使用的 jar 文件的文件名
  • 我想将编辑后的 ​​jar 文件添加到 zip 内的 dist/ 文件夹中

怎么了

  • jar 文件已成功编辑
  • 将 jar 添加回 .zip 时没有给出错误
  • 当我打开修改后的 .zip 和 .jar 时,什么都没有改变。

我究竟做错了什么?

谢谢!

- 编辑:

发现了问题。

将编辑后的 ​​jar 添加回 .zip 后,我在 $zip->close() 之前删除了本地磁盘上的 jar;close() 显然不起作用,因此没有保存更改。

我们学到了什么?

close() 在您删除/...任何文件之前!

4

0 回答 0