Pārlūkot izejas kodu

feat:引入第三方错误包实现显示更多异常信息

lifei6671 6 gadi atpakaļ
vecāks
revīzija
000860db8a
1 mainītis faili ar 13 papildinājumiem un 11 dzēšanām
  1. 13 11
      utils/ziptil/ziptil.go

+ 13 - 11
utils/ziptil/ziptil.go

@@ -2,6 +2,7 @@ package ziptil
 
 import (
 	"archive/zip"
+	"github.com/juju/errors"
 	"io"
 	"os"
 	"path/filepath"
@@ -24,14 +25,14 @@ func Unzip(zipFile, dest string) (err error) {
 	for _, f := range r.File {
 		if !f.FileInfo().IsDir() { //非目录,且不包含__MACOSX
 			if folder := dest + filepath.Dir(f.Name); !strings.Contains(folder, "__MACOSX") {
-				os.MkdirAll(folder, 0777)
+				_ = os.MkdirAll(folder, 0777)
 				if fcreate, err := os.Create(dest + strings.TrimPrefix(f.Name, "./")); err == nil {
 					if rc, err := f.Open(); err == nil {
-						io.Copy(fcreate, rc)
-						rc.Close() //不要用defer来关闭,如果文件太多的话,会报too many open files 的错误
-						fcreate.Close()
+						_, _ = io.Copy(fcreate, rc)
+						_ = rc.Close() //不要用defer来关闭,如果文件太多的话,会报too many open files 的错误
+						_ = fcreate.Close()
 					} else {
-						fcreate.Close()
+						_ = fcreate.Close()
 						return err
 					}
 				} else {
@@ -55,7 +56,7 @@ func Zip(source, target string) error {
 	defer archive.Close()
 	source = strings.Replace(source, "\\", "/", -1)
 
-	filepath.Walk(source, func(path string, info os.FileInfo, err error) error {
+	err = filepath.Walk(source, func(path string, info os.FileInfo, err error) error {
 		if err != nil {
 			return err
 		}
@@ -152,7 +153,10 @@ func Zip(source, target string) error {
 //}
 
 func Compress(dst string, src string) (err error) {
-	d, _ := os.Create(dst)
+	d, err := os.Create(dst)
+	if err != nil {
+		return errors.Trace(err)
+	}
 	defer d.Close()
 	w := zip.NewWriter(d)
 	defer w.Close()
@@ -161,15 +165,13 @@ func Compress(dst string, src string) (err error) {
 	f, err := os.Open(src)
 
 	if err != nil {
-		return err
+		return errors.Trace(err)
 	}
 
-	//prefix := src[strings.LastIndex(src,"/"):]
-
 	err = compress(f, "", w)
 
 	if err != nil {
-		return err
+		return errors.Trace(err)
 	}
 
 	return nil