Ruby - 在tar.gz存档中列出文件

时间:2015-01-28 00:51:37

标签: ruby

我需要在.tar.gz存档中列出文件,而不解压缩存档。我查看了zlib库,但是我找不到列出文件的方法,只显示文件的内容。

如何仅列出档案中的文件?

这是我的代码:

require 'zlib'

Zlib::GzipReader.open("archive.tar.gz") do |entry|
  entry.each { |e| # what's the method? }
end

1 个答案:

答案 0 :(得分:3)

require 'rubygems/package'
require 'zlib'
tar_extract = Gem::Package::TarReader.new(Zlib::GzipReader.open('archive.tar.gz'))
tar_extract.rewind # The extract has to be rewinded after every iteration
tar_extract.each do |entry|
   if entry.file?
       puts entry.full_name
   end
end
tar_extract.close