Go program to extracting or unzip a Zip format file
Example
package main
import (
"archive/zip"
"io"
"log"
"os"
"path/filepath"
)
func main() {
zipReader, _ := zip.OpenReader("test.zip")
for _, file := range zipReader.Reader.File {
zippedFile, err := file.Open()
if err != nil {
log.Fatal(err)
}
defer zippedFile.Close()
targetDir := "./"
extractedFilePath := filepath.Join(
targetDir,
file.Name,
)
if file.FileInfo().IsDir() {
log.Println("Directory Created:", extractedFilePath)
os.MkdirAll(extractedFilePath, file.Mode())
} else {
log.Println("File extracted:", file.Name)
outputFile, err := os.OpenFile(
extractedFilePath,
os.O_WRONLY|os.O_CREATE|os.O_TRUNC,
file.Mode(),
)
if err != nil {
log.Fatal(err)
}
defer outputFile.Close()
_, err = io.Copy(outputFile, zippedFile)
if err != nil {
log.Fatal(err)
}
}
}
}
Most Helpful This Week
Go program to add or append content at the end of text file
Golang Changing permissions, ownership, and timestamps
Go program to compress list of files into Zip file
Golang program to delete a specific file
Golang Create Copy of a file at another location
Go program to Create directory or folder if not exist
Rename a file in Golang
Go program to read list of files inside Zip file
Get file information in Golang
Move a file from one location to another in Golang