使用ruby生成zip檔案

2021-08-29 10:37:20 字數 1091 閱讀 9699

首先安裝rubyzip:

gem install rubyzip

《ruby cookbook》裡面簡要地介紹了如何使用rubyzip讀寫zip檔案,**如下:

# 寫zip

require 'rubygems'

require 'zip/zipfilesystem'

zip::zipfile.open('zipfile.zip', zip::zipfile::create) do |zip|

zip.file.open('file1', 'w')

zip.dir.mkdir('sub_dir')

zip.file.open('sub_dir/file2', 'w')

end

但實際上這段**沒什麼用處,一般我們都是要把已有的檔案或資料夾壓縮成zip,要怎麼辦呢?基本想法是遞迴遍歷給定檔案(目錄),然後把檔案乙個乙個的加入zip檔案中。**如下:

def compress

zip::zipfile.open 'zipfile.zip', zip::zipfile::create do |zip|

add_file_to_zip('dir', zip)

endend

def add_file_to_zip(file_path, zip)

if file.directory?(file_path)

dir.foreach(file_path) do |sub_file_name|

add_file_to_zip("#/#", zip) unless sub_file_name == '.' or sub_file_name == '..'

endelse

zip.add(file_path, file_path)

endend

其實最主要的就是zipfile類的add方法,第乙個引數指定zip檔案中的路徑,第二個引數指定要被壓縮的檔案的路徑。

另外還要注意的是dir.foreach會返回指定目錄中的所有子檔案(目錄),包括"."和"..",所以要做額外的判斷。

ruby 生成檔案

1.建立檔案 建立乙個檔案,引數1 檔名,引數2 對檔案的操作,w 讀寫 w 只寫 r 讀寫 r 只寫 f file.new test1.txt w 寫入檔案內容 f.puts test 最後關閉檔案,釋放這個執行緒.f.close 2.指定檔案的路徑 建立路徑path,引數1 檔案的路徑,引數2 ...

用exerb將ruby生成exe檔案

2.安裝 在dos環境下,輸入命令ruby setup.rb即可。3.使用方法 例 單檔案 a.準備檔案 在ruby自帶的scite的rb檔案的編輯器中,輸入 puts hello 儲存檔名為 hello.rb b.進入dos環境,輸入命令ruby hello.rb確認是否檔案是否存在,請一定這樣做...

Ruby1 9 2之 生成HTML檔案

利用ruby 生成html檔案,首先建立html檔案,然後向其輸入標籤及所需內容。建立檔案 filehtml file.new test html.html w 輸入格式標籤 filehtml.puts 輸入所需內容 filehtml.puts this is neat 輸入格式標籤 filehtm...