0

在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会引发错误。

4

1 回答 1

1

你还没有定义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
于 2016-01-22T12:08:26.697 回答