如何使用 rubyzip 将 zip 存档中的目录复制到第二个 zip 存档?
我有一个包含多个目录的 .zip 存档。使用 rubyzip gem,我想进入 .zip 存档,复制指定的目录(及其内容)并将该目录移动到第二个 .zip 存档中。
理想情况下,我不必提取第一个 .zip 存档的内容,然后将它们重新压缩到第二个存档中。我希望有一种方法可以使用 rubyzip gem 中提供的方法。
I have a .zip archive containing several directories. Using the rubyzip gem I would like to reach into the .zip archive, copy a specified directory (and its contents) and move the directory into a second .zip archive.
Ideally I would not have to extract the contents of the first .zip archive, then re-zip them into a second archive. I'm hoping there is a way to use methods provided in the rubyzip gem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
从那时起,RubyZip 库必须已更新才能支持它。这对我有用。
对于 RubyZip 的版本 < 1.0,
require 'zip/zip'
改为,并使用Zip::ZipFile
代替Zip::File
The RubyZip library must have been updated since then to support it. This worked for me.
For versions of RubyZip < 1.0,
require 'zip/zip'
instead, and useZip::ZipFile
instead ofZip::File
在与 rubyzip gem 的维护者之一核实后,我了解到这是不可能的。
After checking with one of the maintainers of the rubyzip gem, I have learned that this is not possible.
这是一种有点暴力的方法(可能适用于您的应用程序,也可能不适用于您的应用程序),但您可以复制整个第一个 zip 文件,然后使用 rubyzip 方法从复制的文件中删除除目标目录之外的所有内容。
理论上,如果您使用 deflate 压缩(将每个文件存储为单独的压缩项目),您所要求的应该是可能的。
This is a bit of a brute force method (and may or may not work for your application), but you could copy the entire first zip file and then use rubyzip methods to delete everything but the target directory from the copied file.
Theoretically what you are asking should be possible if you are using deflate compression (which stores every file as an individually compressed item).