繁体   English   中英

如何提取 .tar 文件

[英]how to extract .tar file

我正在尝试使用以下代码提取.tar文件,但出现文件格式无效错误,有什么方法可以在 ruby​​ 中提取 .tar 文件,仅供参考我使用的是 Windows 操作系统。 我可以看到文件属性为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'

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM