This project is based on the archive/zip Go standard library. It adds a new Updater
struct that allows appending new files to the existing zip archive without having to decompress the whole file, and allows overwriting of files already stored in the zip archive.
import "github.com/STARRY-S/zip"
// Open an existing test.zip archive with read/write only mode for Updater.
f, err := os.OpenFile("test.zip", os.O_RDWR, 0)
handleErr(err)
zu, err := zip.NewUpdater(f)
handleErr(err)
defer zu.Close()
// Updater supports modify the zip comment.
err = zu.SetComment("Test update zip archive")
handleErr(err)
// Append a new file into existing archive.
// The Append method will create a new io.Writer.
w, err := zu.Append("example.txt")
handleErr(err)
// Write data into writer.
_, err = w.Write([]byte("hello world"))
handleErr(err)
Example test code: updater_example_test.go.
The zip library is based on Go standard library.