Esempio n. 1
0
func (u unZip) unZipTo(to string, f *storage.File, s *storage.Storage) (filesCount, filesSize int64, err error) {

	if err = f.Open(); err != nil {
		return
	}
	defer f.Close()

	z, err := zip.NewReader(f.GetReader(), f.FSize)
	if err != nil {
		return
	}

	for _, zf := range z.File {
		if !zf.FileInfo().IsDir() {
			fs, e := u.saveFile(to, zf, s)
			if e != nil {
				err = e
				return
			}
			filesSize += fs
			filesCount++
		}
	}

	return
}