NewWriter + Create
zw := zip.NewWriter(out)
defer zw.Close()
for name, data := range files {
w, err := zw.Create(name)
if err != nil { return err }
if _, err := w.Write(data); err != nil { return err }
}
archive/zipRead and write ZIP archives. Random-access (needs io.ReaderAt for reading).
zw := zip.NewWriter(out)
defer zw.Close()
for name, data := range files {
w, err := zw.Create(name)
if err != nil { return err }
if _, err := w.Write(data); err != nil { return err }
}
r, err := zip.OpenReader("x.zip")
if err != nil { log.Fatal(err) }
defer r.Close()
for _, f := range r.File {
fmt.Println(f.Name, f.UncompressedSize64)
rc, _ := f.Open()
io.Copy(io.Discard, rc)
rc.Close()
}
r, _ := zip.OpenReader("x.zip")
data, _ := fs.ReadFile(r, "inside/file.txt")