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

This commit is contained in:
lifei6671 2019-08-05 18:09:10 +08:00
parent 458a507fff
commit 000860db8a

View File

@ -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