如何提取.tar文件

时间:2015-12-18 15:29:41

标签: ruby tar

我正在尝试使用以下代码提取 .tar 文件,但是获取无效的文件格式错误,在ruby中提取.tar文件的方法是什么,仅供参考我正在使用窗口操作系统。我可以将文件属性看作Tar archive (application/x-tar)

file_path = "/home/logan/skype/bill_2015-12-14.txt.tar"
extract = Gem::Package::TarReader.new(Zlib::GzipReader.open(file_name))

错误:

Zlib::GzipFile::Error: not in gzip format
from (irb):68:in `initialize'
from (irb):68:in `open'

1 个答案:

答案 0 :(得分:0)

The Buckblog上给出了一个解决方案,它看起来像这样:

require 'rubygems/package'

File.open("chunky_png-1.3.4.gem", "rb") do |file|
  Gem::Package::TarReader.new(file) do |tar|
    tar.each do |entry|
      if entry.file?
        FileUtils.mkdir_p(File.dirname(entry.full_name))
        File.open(entry.full_name, "wb") do |f|
          f.write(entry.read)
        end
        File.chmod(entry.header.mode, entry.full_name)
      end
    end
  end
end