打开的zip文件中的cd目录

时间:2012-04-23 09:31:14

标签: ruby-on-rails ruby ruby-on-rails-3 file zip

我有一个zip文件,在第一个'level'上只包含目录。类似的东西:

some_file.zip

/已打开的文件(级别1)

- >目录/

/ level 2

- > file.txt的

- > FILE2.TXT

有人可以编写如何cdDirectory\并列出所有条目的代码吗?

我已编写代码,但它不起作用:

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

1 个答案:

答案 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