package main import ( "archive/tar" "os" ) func main() { file, _ := os.Create("example.tar") defer file.Close() tw := tar.NewWriter(file) defer tw.Close() header := &tar.Header{ Name: "file.txt", Mode: 0644, Size: 12, Typeflag: tar.TypeReg, } tw.WriteHeader(header) tw.Write([]byte("hello world")) }
package main import ( "archive/tar" "fmt" "os" ) func main() { file, _ := os.Open("example.tar") defer file.Close() tr := tar.NewReader(file) for { header, err := tr.Next() if err != nil { break } fmt.Printf("%s: %s\n", header.Name, header.Typeflag) } }This code reads the tar archive created in the previous example and prints the name and type of each file in the archive. Both of these examples use the archive/tar package provided by the Go standard library.