使用Rubyzip压缩现有文件

时间:2010-09-28 22:17:27

标签: ruby

我想使用rubyzip存档“zip”现有文件:

C:\ TextFile.txt的

textfile.zip

我知道如何将流添加到文本文件中:

require 'zip/zip'

 Zip::ZipFile.open("mp.zip", Zip::ZipFile::CREATE) {
   |zipfile|
    zipfile.get_output_stream("text.txt") { |f| f.puts "Creating text file" }
    }

但不是如何将现有文件添加到zip中。谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

这将读取源文件并将其一次写入1mb到zipfile。

我已经在生产中使用了一些非常相似的东西。

require 'zip/zip'

Zip::ZipFile.open("mp.zip", Zip::ZipFile::CREATE) do |zipfile|
    zipfile.get_output_stream("text.txt") do |out_file|
      File.open("text.txt") do |in_file|
        while blk = in_file.read(1024**2)
          out_file << blk
        end
      end
    end
end

希望这能回答你的问题。