2012-04-23 55 views
1

我有一個zip文件,它在第一個'級別'只包含目錄。類似:在打開的zip文件中的cd目錄

some_file.zip

/打開的文件(級別1)

- >目錄/

/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我用rubyziphttps://github.com/aussiegeek/rubyzip

回答

1

您的代碼似乎有點太複雜了。假設你有一個zip文件是這樣的:

require 'zip/zip' 

zip = Zip::ZipFile.open('data.zip') 
zip.entries.each do |entry| 
    puts entry 
end 

這個小例子產生下面的輸出:

$ mkdir data 
$ cd data 
$ touch foo bar baz 
$ cd .. 
$ zip -r data.zip data/ 

然後你可以使用entries方法就像在下面的例子中列出的zip文件的內容:

data/ 
data/bar 
data/baz 
data/foo 
+0

您的權利。我打開了一個空的ZIP文件。 :d – 2012-04-24 08:33:01