`
edwardpro
  • 浏览: 308871 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

rubyzip 初体验

阅读更多
非常讨厌看类文档,那些东西空洞无物,但是有时候是没有办法的,比如rubyzip,因为需要在项目中使用zip包,只能看类文档了。

第一次使用这东西其实出了不少问题,下面先贴一段有问题的测试代码:

require 'zip/zipfilesystem'
Zip::ZipFile.open("E:\\moive\\c.zip") { #打开
|zf|
zf.dir.entries("").each do |ak| #get files list on root path in zip File
file = File.new("e:\\#{ak}","w+")
file.write(zf.file.open(ak).read())
file.close()
end
}
以上方法有一个问题就是如果读写的是文本文件问题不大(也不是没有问题是看不出),通过FILE泪下的open方法可以得到某个文件的文件流,利用File类可以写入,但问题恰恰出现在这里,这个方法不是真正意义的解压缩,它有个毛病会把一些控制字符转移比如它会吧OA转成 ODOA,所以当你用这个方法保存的文件文件尺寸和原来是不同的,大家一定要注意对于小文件还可以使用 read或者readline方法得到它的string对象这样更方便。

下面贴一个正确的代码:

require 'zip/zipfilesystem'
Zip::ZipFile.open("E:\\moive\\c.zip") {
|zf|
zf.dir.entries("").each do |ak|
zf.extract(ak,"e:\\#{ak}")
end
}

直接用extract方法就好了,这个应该是最简单的,如果要判断文件类别或者重命名都可以简单的在参数中自己设定,非常方便。


更多参考请看:
http://rubyzip.sourceforge.net/
我也是看了一个晚上基本看完了,现在比较困,非常困,坚持中
分享到:
评论

相关推荐

    rubyzip:官方Rubyzip存储库

    Rubyzip是用于读取和写入zip文件的ruby库。 重要的提示 Rubyzip界面已更改!!! 无需删除类名中的require "zip/zip"和Zip前缀。 如果任何需要旧版rubyzip的第三方gem出现问题,则可以使用以下解决方法: gem '...

    Exercism-exercises-in-Ruby.-ruby.zip

    Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_...

    rubyzip-开源

    RubyZip是一个纯Ruby实现的库,它为Ruby程序员提供了处理ZIP文件的能力,无论是读取、创建还是修改。这个库的设计使得在Ruby环境中处理压缩文件变得简单而高效,无需依赖任何外部的C扩展或第三方库。RubyZip的核心...

    Ruby-Style-Guide-ruby.zip

    Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_...

    ruby2ruby.zip

    ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby

    Ruby中文文档.zip

    Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp ...

    Ruby on Rails 初体验--北大青鸟教师专题讲座PPT

    通过一个简单的通讯录应用为例,可以快速体验RoR的开发流程:首先,新建RoR项目并设置名称和位置;接着,进行数据库配置,通常会自动生成与项目名对应的数据库;然后,利用RoR的命令生成数据库,项目结构会自动建立...

    ruby2.6.1.zip

    10. **开发者工具**:此版本还包含了一些开发工具的增强,如`irb`(交互式Ruby shell)和`rdoc`(文档生成工具)的改进,提供了更好的用户体验。 解压"ruby2.6.1.zip"后,你可以得到"ruby-2.6.1"目录,里面包含了...

    Thrift之C++初体验

    它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。

    windows下安装Ruby 1.9 二进制zip包

    下面,我们将详细讨论如何通过二进制zip包在Windows上安装Ruby 1.9。 首先,你需要下载Ruby 1.9的Windows二进制zip包,可以从Ruby官方网站或者第三方可靠的下载站点获取。这个zip包通常包含了Ruby解释器以及必要的...

    zip-zip:在 Gem 中迁移到 RubyZip v1.0.0? 在您的 Gemfile 中包含 zip-zip,一切都会好起来的!

    拉链 因此,您升级了需要 RubyZip v1.0.0 或更高版本的 gem 依赖项。 而所有其他依赖项都使用 v0.x 提供的接口。 zip-zip提供了一个简单的适配器,让您的所有依赖项都使用 RubyZip v1.0.0。 它非常简单且重量轻,将...

    Ruby资源1.zip

    Ruby资源1.zip

    Ruby思维导图.zip

    Ruby思维导图.zip

    learn-ruby.zip

    Ruby学习资源,包含16个ruby文件,含代码,一步一步学习ruby,以及对应的html官方文档资源。 Ruby学习资源,包含16个ruby文件,含代码,一步一步学习ruby,以及对应的html官方文档资源。 Ruby学习资源,包含16个ruby...

    ruby-2.3.0

    Ruby是一种面向对象的、动态类型的编程语言,由日本的松本行弘(Yukihiro Matsumoto)于1995年设计并开发。Ruby-2.3.0是该语言的一个特定版本,发布于2016年,它带来了许多性能改进、新特性和对旧特性的优化。 在Ruby...

    Ruby_2.6.6.zip

    在本场景中,"Ruby_2.6.6.zip" 是一个包含Ruby 2.6.6版本的压缩包,这通常是用于在本地环境中搭建Jekyll博客的必要组件。Jekyll是一个静态站点生成器,它允许用户使用Markdown、HTML和 Liquid模板语言编写内容,并...

    Ruby资源ruby-v3.1.1.zip

    本资源“ruby-v3.1.1.zip”包含了Ruby的最新版本3.1.1,这是一个重要的里程碑,因为它引入了新特性、性能优化以及对旧版本的改进。 在Ruby 3.1.1中,开发者可以期待以下关键特性: 1. **块参数解构**:Ruby 3.1...

    基于Ruby编写的命令行注入版本.zip

    基于Ruby编写的命令行注入版本.zip基于Ruby编写的命令行注入版本.zip基于Ruby编写的命令行注入版本.zip基于Ruby编写的命令行注入版本.zip基于Ruby编写的命令行注入版本.zip基于Ruby编写的命令行注入版本.zip基于Ruby...

    Sass环境-Ruby2.6.5.zip

    Ruby 安装 - Windows 下面列出了在 Windows 机器上安装 Ruby 的步骤。 注意:在安装时,您可能有不同的可用版本。 Window 系统下,我们可以使用 RubyInstaller 来安装 Ruby 环境,下载地址为:请点击这里...

    学习Ruby的笔记以及Demo源码.zip

    学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及...

Global site tag (gtag.js) - Google Analytics