.github
Update CItestdata
Bump go version 1.23.gitignore
Update CI.goreleaser.yaml
Update CIfuzz_test.go
Bump go version 1.23go.mod
Bump go version 1.23go.sum
Added GitHub Action to run unit-testsLICENSE
Initial commitreader_test.go
Bump go version 1.23reader.go
Bump go version 1.23README.md
Update READMEregister.go
Bump go version 1.23struct.go
Bump go version 1.23updater_example_test.go
Add updater example test codeupdater_test.go
Update READMEupdater.go
Add test to ensure zip file is not damagedwriter_test.go
Bump go version 1.23writer.go
Bump go version 1.23zip_test.go
Bump go version 1.23Go zip library
This project is based on the archive/zip Go standard library. It adds a new Updater that allows appending new files to the existing zip archive without having to decompress the entire-file and allows overwriting of existing files stored in the zip archive.
Usage
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.
// Use [zip.APPEND_MODE_OVERWRITE] to overwrite if the file already exists.
// The Append method will create a new io.Writer.
w, err := zu.Append("example.txt", zip.APPEND_MODE_OVERWRITE)
handleErr(err)
// Write data into writer.
_, err = w.Write([]byte("hello world"))
handleErr(err)For more example usage, please refer to updater_example_test.go.
License
This zip library is based on the Go standard library.