我有一个zip文件,在第一个'level'上只包含目录。类似的东西:
some_file.zip
/已打开的文件(级别1)
- >目录/
/ level 2
- > file.txt的
- > FILE2.TXT
有人可以编写如何cd
到Directory\
并列出所有条目的代码吗?
我已编写代码,但它不起作用:
require 'zip/zipfilesystem'
Zip::ZipFile.open("./some_file.zip") do |zipfile|
zipfile.each_with_index do |file, index|
puts "inspect file == #{file.inspect}"
puts "entries == #{ zipfile.entries }"
entries = zipfile.entries
puts "zipfile.open file #{ zipfile.read(file) }"
end
end
PS我使用rubyzip
https://github.com/aussiegeek/rubyzip
答案 0 :(得分:1)
您的代码似乎有点过于复杂。假设你有一个像这样的zip文件:
$ mkdir data
$ cd data
$ touch foo bar baz
$ cd ..
$ zip -r data.zip data/
然后,您可以使用entries
方法列出zip文件的内容,如下例所示:
require 'zip/zip'
zip = Zip::ZipFile.open('data.zip')
zip.entries.each do |entry|
puts entry
end
这个小例子产生以下输出:
data/
data/bar
data/baz
data/foo