rubyzip的使用

来源:互联网 发布:unity3d 合金弹头 编辑:程序博客网 时间:2024/04/27 23:27

先贴出官网的例子

require 'rubygems'require 'zip/zip'folder = "Users/me/Desktop/stuff_to_zip"input_filenames = ['image.jpg', 'description.txt', 'stats.csv']zipfile_name = "/Users/me/Desktop/archive.zip"Zip::ZipFile.open(zipfile_name, Zip::ZipFile::CREATE) do |zipfile|  input_filenames.each do |filename|    # Two arguments:    # - The name of the file as it will appear in the archive    # - The original file, including the path to find it    zipfile.add(filename, folder + '/' + filename)  endend

rubyzip是从java的java.util.zip模块演变来的,我想正是因为这个原因,这个例子中没有写任何注释,指示我捣鼓了半天才出来,现在附上中文注释

require 'rubygems'require 'zip/zip'folder = "Users/me/Desktop/stuff_to_zip"   要解压/压缩文件的目录路径input_filenames = ['image.jpg', 'description.txt', 'stats.csv']zipfile_name = "/Users/me/Desktop/archive.zip"   #需要的zip文件路径和这个文件的名字Zip::ZipFile.open(zipfile_name, Zip::ZipFile::CREATE) do |zipfile|  input_filenames.each do |filename|    # add方法中要有两个参数:    # - filename 压缩包中文件名     # - folder就是路径,‘/’后是要解压/压缩的文件的名称    zipfile.add(filename, folder + '/' + filename)     endend
最后生成的是一个名为archive的压缩包,里面有三个文件


这里有一个很好的例子 又封装了一层,写的蛮好 

http://www.flatws.cn/article/program/ruby/2011-04-21/21856.html


当然,如果换一个角度思考,那就是——我为什么一定要用ruby来做呢!?其实说起来,压缩的话,用一个压缩命令搞定

`zip -r a.zip b`
-r 递归所有文件夹中文件

把文件夹b压缩成a.zip,简单的一塌糊涂