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

是否可以在 golang 中提取 tar.xz 包?

是否可以在 golang 中提取 tar.xz 包?

Go
繁花如伊 2021-09-13 14:57:30
是否可以在 golang 中提取 tar.xz 包?我的理解是可以将库用于 tar 并将其发送到 xz go 库。
查看完整描述

3 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

Go 标准库中没有 Lempel-Ziv-Markow 编码器或解码器。如果允许您假设运行代码的平台提供了该xz实用程序,则可以使用如下存根函数:


import "os/exec"


// decompress xz compressed data stream r.

func UnxzReader(r io.Reader) (io.ReadCloser, error) {

    unxz := exec.Command("xz", "-d")

    unxz.Stdin = r

    out, err := unxz.StdoutPipe()

    if err != nil {

        return nil, err

    }


    err = unxz.Start()

    if err != nil {

        return nil, err

    }


    // we are not interested in the exit status, but we should really collect

    // that zombie process

    go unxz.Wait()


    return out, nil

}


查看完整回答
反对 回复 2021-09-13
  • 3 回答
  • 0 关注
  • 370 浏览
慕课专栏
更多

添加回答

举报

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