2012-04-23 12 views
1

私は最初に 'レベル'にディレクトリのみを含むzipファイルを持っています。以下のような何か:開かれたzipファイルのcdディレクトリ

some_file.zip

/開かれたファイル(レベル1)

- >ディレクトリ/

/レベル2

- > file.txtを

- > file2.txt

誰かがコードを書く方法を教えてください。cdDirectory\すべてのエントリをリストしますか?

私は、コードを書かれているが、それは仕事をdoesntの:私はrubyziphttps://github.com/aussiegeek/rubyzip

答えて

1

を使用

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は、あなたのコードは少し複雑すぎるようです。

$ 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 

この小さな例では、次の出力を生成しますが、このようなzipファイルを持っていると仮定:

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

お客様の権利。空のZIPファイルを開きました。 :D –

関連する問題