小编Vic*_*nac的帖子

如何在 go 中解压 tar.gz 文件?

我有一个名为的文件file.tar.gz,它有一个folder内部文件。使用 go 我想解压缩它并将文件夹保存在当前目录中。

我在论坛上找到了这些代码,但在我的情况下不起作用。

package main

import (
    "archive/tar"
    "compress/gzip"
    "io"
    "log"
    "os"
)

func ExtractTarGz(gzipStream io.Reader) {
    uncompressedStream, err := gzip.NewReader(gzipStream)
    if err != nil {
        log.Fatal("ExtractTarGz: NewReader failed")
    }

    tarReader := tar.NewReader(uncompressedStream)

    for true {
        header, err := tarReader.Next()

        if err == io.EOF {
            break
        }

        if err != nil {
            log.Fatalf("ExtractTarGz: Next() failed: %s", err.Error())
        }

        switch header.Typeflag {
        case tar.TypeDir:
            if err := os.Mkdir(header.Name, 0755); err != nil {
                log.Fatalf("ExtractTarGz: Mkdir() failed: …
Run Code Online (Sandbox Code Playgroud)

gzip tar go

9
推荐指数
1
解决办法
7296
查看次数

标签 统计

go ×1

gzip ×1

tar ×1