github.com/ggreg80/ketos@v0.0.0-20171109040536-049616f51ddb/testdata/tar-untar/untar.go (about)

     1  package main
     2  
     3  import (
     4  	"archive/tar"
     5  	"fmt"
     6  	"io"
     7  	"os"
     8  )
     9  
    10  func main() {
    11  
    12  	file, err := os.Open("./taste.tar")
    13  	if err != nil {
    14  		panic(err)
    15  	}
    16  	defer file.Close()
    17  
    18  	tarr := tar.NewReader(file)
    19  
    20  	for {
    21  
    22  		hdr, err := tarr.Next()
    23  		if err == io.EOF {
    24  			break
    25  		} else if err != nil {
    26  			panic(err)
    27  		}
    28  
    29  		fmt.Printf("tared file: %v\n", hdr.Name)
    30  		_, err = io.Copy(os.Stdout, tarr)
    31  		if err != nil {
    32  			panic(err)
    33  		}
    34  
    35  		fmt.Println()
    36  	}
    37  }