为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 中从 tar 文件中提取

在 Go 中从 tar 文件中提取

Go
杨魅力 2021-11-01 16:53:16
这段代码试图将一些文本tar压缩到一个文件中并解压缩它。代码tar有效,但似乎我做错了什么,因为untar同一个文件不起作用。当我使用 OS GUI 手动解压缩 tar.gz 文件时,它可以工作,但不能在此代码中使用。http://play.golang.org/p/diTOojUuBXfunc main() {        mpath := "a.tar.gz"        // defer os.Remove(mpath)        f, err := overwrite(mpath)        defer f.Close()        if err != nil {                panic(err)        }        gw := gzip.NewWriter(f)        defer gw.Close()        if err != nil {                panic(err)        }        tw := tar.NewWriter(gw)        for _, file := range files {                hdr := &tar.Header{                        Name: file.Name,                        Mode: 0600,                        Size: int64(len(file.Body)),                }                if err := tw.WriteHeader(hdr); err != nil {                        panic(err)                }                if _, err := tw.Write([]byte(file.Body)); err != nil {                        panic(err)                }        }        // Make sure to check the error on Close.        if err := tw.Close(); err != nil {                panic(err)        }        fr, err := read(mpath)        defer fr.Close()        if err != nil {                panic(err)        }        gr, err := gzip.NewReader(fr)        defer gr.Close()        if err != nil {                panic(err)        }        tr := tar.NewReader(gr)    
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信