go-examples/zip/README.md

778 B

Go Zip Example

An example of how to zip a directory in Go.

  • Utilizes filepath.Walk to traverse a directory (or single file)
  • Handles each of
    • Files (deflated, compressed)
    • Directories (empty, not compressed)
    • Symlinks (not compressed)
    • Skips irregular files (pipes, sockets, devices, chars)
  • Names zip file after the name of the directory
  • Trims path prefix
git clone https://git.coolaj86.com/coolaj86/go-examples.git
pushd go-examples/zip
go run . path/to/whatever
wrote whatever.zip

Separates concerns into functions for readability:

  • func main()
  • func Zip(w io.Writer, src string, trim string) error
    • zipOne
      • zipDirectory
      • zipFile
      • zipSymlink