2010-09-28 57 views
2
现有文件

我想用rubyzip到压缩文件 “压缩” 现有文件:荏苒与Rubyzip

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" } 
    } 

但不是如何添加现有的文件到一个邮编。感谢您的帮助

+0

显然,你必须使用流。 [Zippy](http://tore.darell.no/posts/zippy_rubyzip_for_dummies)可以让你做你想做的事。 – 2010-09-28 22:30:02

+0

好吧zippy看起来很有希望,但我没有看到一个简单的例子,说找到现有的文件和压缩他们。你知道一个zippy吗? – nomoreflash 2010-09-28 22:50:32

回答

1

这读入源文件,并一次写入1mb到zip文件。

我一直在使用一些非常类似的产品。

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 

希望能回答你的问题。

+0

我知道它应该很简单,但我是Ruby的新手。你会介意如何通过ruby-ish方式修改这个方法来循环访问一系列文件名吗? – iX3 2012-11-14 20:22:20