Created
March 20, 2012 18:35
-
-
Save mharris717/2139437 to your computer and use it in GitHub Desktop.
Get files in dir of zips
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'zip/zipfilesystem' | |
require 'net/ftp' | |
require 'csv' | |
def files_in_zip(filename) | |
Zip::ZipFile.open(filename) do |zip| | |
res = [] | |
dirs = [""] | |
while dirs.size > 0 | |
d = dirs.pop | |
begin | |
curr = zip.dir.entries(d).map { |x| [d,x].select { |x| x != '' }.join("/") } | |
res += curr | |
dirs += curr.reject { |x| x =~ /\./ } | |
res -= [d] | |
rescue => exp | |
puts exp.message | |
end | |
end | |
res | |
end | |
rescue => exp | |
puts exp.message | |
return ["ERRORED"] | |
end | |
CSV.open("output.csv","w") do |csv| | |
csv << ["Zip","File"] | |
files = Dir["**/*.zip"] | |
puts "Found #{files.size} zip files" | |
files.each do |f| | |
puts "Doing file #{f}" | |
res = files_in_zip(f) | |
res.each do |file| | |
csv << [f,file] | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment