github.com/pbberlin/tools@v0.0.0-20160910141205-7aa5421c2169/os/osutilpb/create_zip.go (about) 1 package osutilpb 2 3 import ( 4 "archive/zip" 5 "bytes" 6 "io/ioutil" 7 "log" 8 "os" 9 ) 10 11 func CreateZipFile(files []string, archiveName string) { 12 13 buf := new(bytes.Buffer) 14 w := zip.NewWriter(buf) 15 16 // Add some files to the archive. 17 for _, fn := range files { 18 19 fi, err := os.Stat(fn) 20 if err != nil { 21 log.Fatal(err) 22 } 23 24 if !fi.IsDir() { 25 bts, err := ioutil.ReadFile(fn) 26 if err != nil { 27 log.Fatal(err) 28 } 29 30 f, err := w.Create(fn) 31 if err != nil { 32 log.Fatal(err) 33 } 34 35 _, err = f.Write(bts) 36 if err != nil { 37 log.Fatal(err) 38 } 39 40 } 41 42 } 43 44 err := w.Close() 45 if err != nil { 46 log.Fatal(err) 47 } 48 49 err = ioutil.WriteFile(archiveName, buf.Bytes(), 0777) 50 if err != nil { 51 log.Fatal(err) 52 } 53 54 }