SoFunction
Updated on 2024-11-12

Go compression and decompression of files

package main
import (
    "fmt"
    "os"
    "io"
    "archive/tar"
    "compress/gzip"
)
func main() {
    // file write
    fw, err := ("tar/lin_golang_src.")
    if err != nil {
        panic(err)
    }
    defer ()
    // gzip write
    gw := (fw)
    defer ()
    // tar write
    tw := (gw)
    defer ()
// Open the folder
    dir, err := ("file/")
    if err != nil {
        panic(nil)
    }
    defer ()
// Read the list of files
    fis, err := (0)
    if err != nil {
        panic(err)
    }
// Traverse the list of files
    for _, fi := range fis {
// Escape the folder, I'm not recursive here.
        if () {
            continue
        }
// Print the file name
        (())
// Open the file
        fr, err := (() + "/" + ())
        if err != nil {
            panic(err)
        }
        defer ()
// Message header
        h := new()
        = ()
        = ()
        = int64(())
        = ()
// Write message header
        err = (h)
        if err != nil {
            panic(err)
        }
// Write the file
        _, err = (tw, fr)
        if err != nil {
            panic(err)
        }
    }
    (" ok")
}