这段代码试图将一些文本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
提交
取消