gpt4 book ai didi

ruby - 如何用ruby解压一个文件

转载 作者:数据小太阳 更新时间:2023-10-29 07:49:57 29 4
gpt4 key购买 nike

好的,我找到了以下使用 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 希望您进行自己的路径名清洗。

请注意,在 ruby​​zip 1.1.4 中,Zip::Zipfile 已重命名为 Zip::File

关于ruby - 如何用ruby解压一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22486990/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com