首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用rubyzip将zip存档中的目录复制到另一个zip存档中?

如何使用rubyzip将zip存档中的目录复制到另一个zip存档中?
EN

Stack Overflow用户
提问于 2009-09-04 04:10:41
回答 3查看 698关注 0票数 2

我有一个包含几个目录的.zip归档文件。使用rubyzip gem,我想进入.zip归档,复制一个指定的目录(及其内容),并将该目录移动到另一个.zip归档中。

理想情况下,我不必提取第一个.zip归档的内容,然后将它们重新压缩到第二个归档中。我希望有一种方法可以使用rubyzip gem中提供的方法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-04 12:37:54

在与rubyzip gem的维护人员确认后,我了解到这是不可能的。

票数 1
EN

Stack Overflow用户

发布于 2012-06-18 13:06:27

RubyZip库必须从那时起进行更新才能支持它。这对我很有效。

代码语言:javascript
复制
require 'rubygems'
require 'zip' # gem 'rubyzip', '>= 1.0'

Zip::File.open('large.zip', false) do |input|
  Zip::File.open('small.zip', true) do |output|
    input.glob('my_folder_name/*') do |entry|
      entry.get_input_stream do |input_entry_stream|
        output.get_output_stream(entry.name) do |output_entry_stream|
          # you could also chunk this, rather than reading it all at once.
          output_entry_stream.write(input_entry_stream.read)
        end
      end
    end
  end
end

对于小于1.0的RubyZip版本,请使用require 'zip/zip',并使用Zip::ZipFile而不是Zip::File

票数 1
EN

Stack Overflow用户

发布于 2009-09-04 04:20:44

这有点像暴力破解方法(可能对您的应用程序有效,也可能不适用),但是您可以复制整个第一个zip文件,然后使用rubyzip方法从复制的文件中删除除目标目录之外的所有内容。

从理论上讲,如果您正在使用deflate压缩(它将每个文件存储为单独压缩的项目),那么您所要求的应该是可能的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1377189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档