作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
好的,我找到了以下使用 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)
我做错了什么?谢谢!
最佳答案
注意:示例脚本还将解压符号链接(symbolic link),并将解压 ../../../../etc/passwd
而不会报错。 rubyzip gem 希望您进行自己的路径名清洗。
请注意,在 rubyzip 1.1.4 中,Zip::Zipfile
已重命名为 Zip::File
。
关于ruby - 如何用ruby解压一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22486990/
我是一名优秀的程序员,十分优秀!