package main import ( "archive/tar" "fmt" "os" ) func main() { file, err := os.Open("example.tar") if err != nil { panic(err) } defer file.Close() tarReader := tar.NewReader(file) for { header, err := tarReader.Next() if err != nil { if err == io.EOF { break } panic(err) } fmt.Printf("File: %s\n", header.Name) fmt.Printf("ModTime: %s\n", header.ModTime.String()) } }
package main import ( "archive/tar" "fmt" "io" "os" "time" ) func main() { file, err := os.Create("example.tar") if err != nil { panic(err) } defer file.Close() tarWriter := tar.NewWriter(file) header := &tar.Header{ Name: "file.txt", Size: 10, ModTime: time.Now(), } err = tarWriter.WriteHeader(header) if err != nil { panic(err) } _, err = io.WriteString(tarWriter, "Hello, world!") if err != nil { panic(err) } err = tarWriter.Close() if err != nil { panic(err) } fmt.Println("Created example.tar") }This code creates a new tar archive file named "example.tar" and adds a file named "file.txt" to it. The `tar.Header` struct is used to specify the file's metadata, including its size and modification time, which is set to the current time using `time.Now()`. The `tarWriter.WriteHeader()` method is used to write the header to the archive, followed by the file's contents using `io.WriteString()`. Finally, `tarWriter.Close()` is called to close the archive file.