Logo

Programming-Idioms

Create a zip-file with filename name and add the files listed in list to that zip-file.
New implementation

Type ahead, or select one

Explain stuff

To emphasize a name: _x → x

Please be fair if you are using someone's work

You agree to publish under the CC-BY-SA License

Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please do not paste any copyright violating material.

Please try to avoid dependencies to third-party libraries and frameworks.

Other implementations
import "archive/zip"
import "bytes"
import "os"
import "io"
buf := new(bytes.Buffer)
w := zip.NewWriter(buf)
for _, filename := range list {
	input, err := os.Open(filename)
	if err != nil {
		return err
	}
	output, err := w.Create(filename)
	if err != nil {
		return err
	}
	_, err = io.Copy(output, input)
	if err != nil {
		return err
	}
}

err := w.Close()
if err != nil {
	return err
}

err = os.WriteFile(name, buf.Bytes(), 0777)
if err != nil {
	return err
}

list contains filenames of files existing in the filesystem.
In this example, the zip data is buffered in memory before writing to the filesystem.