当前位置: 首页 > 工具软件 > rubyzip > 使用案例 >

rubyzip 初体验

解博明
2023-12-01
非常讨厌看类文档,那些东西空洞无物,但是有时候是没有办法的,比如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/
我也是看了一个晚上基本看完了,现在比较困,非常困,坚持中
 类似资料: