Advertisement
Guest User

Untitled

a guest
May 26th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.71 KB | None | 0 0
  1. func unzip(archive, target string) error {
  2.     reader, err := zip.OpenReader(archive)
  3.     if err != nil {
  4.         return err
  5.     }
  6.  
  7.     if err := os.MkdirAll(target, 0755); err != nil {
  8.         return err
  9.     }
  10.  
  11.     for _, file := range reader.File {
  12.         path := filepath.Join(target, file.Name)
  13.         if file.FileInfo().IsDir() {
  14.             os.MkdirAll(path, file.Mode())
  15.             continue
  16.         }
  17.  
  18.         fileReader, err := file.Open()
  19.         if err != nil {
  20.             return err
  21.         }
  22.         defer fileReader.Close()
  23.  
  24.         targetFile, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, file.Mode())
  25.         if err != nil {
  26.             return err
  27.         }
  28.         defer targetFile.Close()
  29.  
  30.         if _, err := io.Copy(targetFile, fileReader); err != nil {
  31.             return err
  32.         }
  33.     }
  34.  
  35.     return nil
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement