为了进行数据比较,我一直在尝试阅读压缩文件的内容,类似于此主题中的人:Reading files in a zip archive, without unzipping the archive
我在那里完全尝试了接受的代码,但我仍然得到了错误
/home/fikayo/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rubyzip-1.2.0/lib/zip/file.rb:73:in `size?': no implicit conversion of Zip::Entry into String (TypeError)
供参考,这是我的代码:
require 'rubygems'
require 'zip'
def read_file
Zip::File.open(myZip) do |zip_file|
zip_file.each do |entry|
if entry.directory?
puts "#{entry.name} is a folder!"
elsif entry.symlink?
puts "#{entry.name} is a symlink!"
elsif entry.file?
puts "#{entry.name} is a regular file!"
# Read into memory
content = entry.get_input_stream.read
# Output
puts content
else
puts "No sell"
end
end
end
end
myZip
是我在其中存储zip文件的变量。我检查确认其类型列为Zip::Entry
答案 0 :(得分:3)
根据rubyzip documentation(以及您关联的问题)mZip
应该是String
类,并且包含文件路径而不是{{ 1}}或File
。
Zip::Entry