2012-04-23 2 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

사용합니다.

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 파일을 열었습니다. :디 –

관련 문제