6

我在这里有一个 ruby​​ on rails 站点(rails 2.0.2,ruby 1.8.6),同时安装了 ruby​​zip 和 zipruby,但它们在 File.exists 上存在冲突?方法所以我想删除一个。关于未来最好的 zipping api 的普遍共识是什么?

一个比另一个有显着优势吗?

4

6 回答 6

17

据我所知,rubyzip 有时会奇怪地处理 zip 文件,因为它自己处理 zip 文件索引和记录。例如,如果您使用 ruby​​zip 解压缩 docx 文件并重新打包,Microsoft Word 将无法打开它。但是 zipruby 使用非常标准的 libzip C 库(带有轻微的定制)并且不会破坏 docx。因此,如果您的目标是格式兼容性,我建议使用 zipruby。也许 ruby​​zip 自从我尝试后有所改进 - 但你应该自己尝试一下。

于 2011-08-02T22:33:47.213 回答
2

完全随机的答案,因为我也从未尝试过:从您当前的状态继续前进,RubyZip 可能更有希望。从以下(少量)数据来看,RubyZip 更受欢迎,而且似乎更适合新版本的 Ruby:

RubyZip 1.9:http: //isitruby19.com/rubyzip

ZipRuby 1.9:http: //isitruby19.com/zipruby

除非你得到更好的证据,否则我会选择 ruby​​Zip。另请参阅What zip library 适用于 Ruby 1.9.2?. 然而,还有一个 RubyZip 的分支 ( https://github.com/postmodern/rubyzip2 ) 再次表明它很受欢迎。文档看起来更有趣。

于 2011-08-02T03:31:57.567 回答
0

我经常使用https://github.com/toretore/zippy gem,我认为它非常好。它是 ruby​​zip 的包装器,它极大地简化了 zip 文件的操作。

于 2011-08-02T10:32:00.333 回答
0

似乎 ruby​​zip 可以为文件存储不正确的未压缩值,这会导致一些解压缩库(如 miniz)在解压缩时失败。zipruby 看起来像是存储了正确的未压缩大小。我将使用 zipruby。

于 2014-08-18T03:06:49.950 回答
0

如果您只需要从 zipfile 中获取单个文件或几个文件,您可以尝试使用Pinch它可以让您在 ruby​​ 中通过 http 提取文件

Pinch:通过网络从 zip 文件中检索文件!

于 2011-08-02T21:20:48.397 回答
0

rubyzip 似乎不做密码保护,而 zipruby 做:link

于 2012-10-23T22:21:18.040 回答