我在这里有一个ruby on rails站点(rails 2.0.2, ruby 1.8.6),同时安装了rubyzip和zipruby,但是它们在File.exists上发生冲突?方法,我想删除一个。对于未来最好的压缩api,普遍的共识是什么?
两者是否有显著优势?
据我所见,rubyzip有时处理zip文件很奇怪,因为它自己处理zip文件索引和记录。例如,如果您使用rubyzip解压缩docx文件并重新打包,Microsoft Word将无法打开它。但是zipruby使用非常标准的libzip C库(稍微进行了一些定制),不会损坏docx。因此,如果您的目标是格式兼容性,我建议使用zipruby。也许rubyzip已经改进了,但你应该自己试试。
完全随机的答案,因为我从来没有尝试过:从你目前的状态前进,RubyZip可能更有前途。从以下(很少的)数据来看,RubyZip不仅更受欢迎,而且似乎与新版本的Ruby一起工作得更好:
RubyZip with 1.9: http://isitruby19.com/rubyzip
ZipRuby with 1.9: http://isitruby19.com/zipruby
除非你有更好的证据,否则我会选择rubyZip。另请参阅什么zip库与Ruby 1.9.2一起很好地工作?然而,RubyZip的一个分支(https://github.com/postmodern/rubyzip2)再次表明了它的受欢迎程度。文档看起来更有趣。
我使用了https://github.com/toretore/zippy gem很多,我认为它是相当不错的。它是rubyzip的包装器,它极大地简化了zip文件的操作。
如果你只需要从zip文件中获取一个文件或几个文件,你可以尝试使用Pinch
,它可以让你在ruby
Pinch:通过网络从zip文件中检索文件!
rubyzip似乎没有密码保护,而zipruby有:link
rubyzip似乎可以为文件存储不正确的未压缩值,这导致一些解压缩库(如miniz)在解压缩时失败。Zipruby看起来可以存储正确的未压缩大小。我选zipruby