【发布时间】:2014-03-18 17:41:42
【问题描述】:
好的,我找到了以下使用 Ruby 解压缩文件的代码。
def unzip_file (file, destination)
Zip::ZipFile.open(file_path) { |zip_file|
zip_file.each { |f|
f_path=File.join("destination_path", f.name)
FileUtils.mkdir_p(File.dirname(f_path))
zip_file.extract(f, f_path) unless File.exist?(f_path)
}
}
end
在此之上,我使用以下内容来确保安装所需的 gem。
begin
require 'rubygems'
rescue LoadError
'gem install rubygems'
end
begin
require 'zip/zip'
rescue LoadError
'gem install rubyzip'
end
所以当我调用 unzip_file 我得到以下错误:
in `unzip_file': uninitialized constant Zip (NameError)
我做错了什么? 谢谢!
【问题讨论】:
-
试试
::Zip::ZipFile.open(file_path) .. -
"gem install rubygems" 然后就亮了。
-
如果 Ruby 脚本开始自行安装 gem,我会感到非常惊讶。最好在
LoadError上简单地中止并喊用户自己安装gem。