2010-09-28 64 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