阅读 readme.md 中的 zip 示例 - main:Object 的未定义局部变量或方法“dest_file”(NameError)
Read zip example in readme.md - undefined local variable or method `dest_file' for main:Object (NameError)
执行ready.md中的示例代码,我得到了上面的错误。搜索源代码我找不到方法 dest_file
。我实现的代码 -
require 'rubygems'
require 'zip'
Zip::File.open('test.zip') do |zip_file|
# Handle entries one by one
zip_file.each do |entry|
# Extract to file/directory/symlink
puts "Extracting #{entry.name}"
entry.extract(dest_file)
# Read into memory
content = entry.get_input_stream.read
end
end
我是不是理解错了?我的假设是 dest_file
为文件提供了正确的元数据以便它可以保存,但是替换为明显的 entry.name
会引发错误。
您尚未定义 dest_file
值。您需要指定文件名。也许你可以使用:
entry.extract(entry.name)
解压当前目录下与源文件同名的文件
如果你想解压到特定的目录,那么,你可以做如下的操作:
require "zip"
output_dir = "/tmp/"
Zip::File.open('a.zip') do |zip_file|
# Handle entries one by one
zip_file.each do |entry|
# Extract to file/directory/symlink
puts "Extracting #{entry.name}"
entry.extract("#{File.expand_path(output_dir)}/#{entry.name}")
end
end
执行ready.md中的示例代码,我得到了上面的错误。搜索源代码我找不到方法 dest_file
。我实现的代码 -
require 'rubygems'
require 'zip'
Zip::File.open('test.zip') do |zip_file|
# Handle entries one by one
zip_file.each do |entry|
# Extract to file/directory/symlink
puts "Extracting #{entry.name}"
entry.extract(dest_file)
# Read into memory
content = entry.get_input_stream.read
end
end
我是不是理解错了?我的假设是 dest_file
为文件提供了正确的元数据以便它可以保存,但是替换为明显的 entry.name
会引发错误。
您尚未定义 dest_file
值。您需要指定文件名。也许你可以使用:
entry.extract(entry.name)
解压当前目录下与源文件同名的文件
如果你想解压到特定的目录,那么,你可以做如下的操作:
require "zip"
output_dir = "/tmp/"
Zip::File.open('a.zip') do |zip_file|
# Handle entries one by one
zip_file.each do |entry|
# Extract to file/directory/symlink
puts "Extracting #{entry.name}"
entry.extract("#{File.expand_path(output_dir)}/#{entry.name}")
end
end