我需要使用Ruby解压缩.rar存档。我找不到宝石。我发现了rar宝石,该宝石只允许创建档案。
我对unrar感到困惑,可以通过gem 'unrar', git: '[email protected]:aileron/unrar.git'
安装它。这是使用它的粗略草图...
require 'unrar'
archive = Unrar.new('test.rar')
file_id = archive.list_contents.first[:filename]
File.open('output-name', 'w') { |file| file.write(archive.extract(file_id)) }
在对该主题进行了一些额外的阅读之后,看来所有用于此目的的宝石都基本上被废弃了。但是,您可以brew install unrar
并从Ruby system('unrar l your_file.rar')
中使用它。
ffi-libarchive提供了基于gem的解决方案。即使它们没有特别提及,它也适用于rar文件。将此添加到您的应用程序的Gemfile:
gem 'ffi-libarchive'
然后执行:
$ bundle