我有一个名为的文件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)