1

我有一个 zip 文件,它在第一个“级别”上只包含目录。就像是:

some_file.zip

/打开的文件(1级)

-> 目录/

/ 2级

-> 文件.txt

-> 文件 2.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

4

1 回答 1

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
于 2012-04-23T12:26:48.363 回答