mirror of
https://github.com/mindoc-org/mindoc.git
synced 2025-08-20 10:03:56 +08:00
feat:引入第三方错误包实现显示更多异常信息
This commit is contained in:
parent
458a507fff
commit
000860db8a
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user