Skip to content

Commit d939cda

Browse files
authored
Merge pull request #8 from MCSManager/build/test
Fix: linux os zip prefix
2 parents 924f436 + c892cae commit d939cda

File tree

2 files changed

+16
-26
lines changed

2 files changed

+16
-26
lines changed

utils/unzip.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,29 +62,27 @@ func decode(files []*zip.File, targetPath string, types string) error {
6262
}
6363

6464
func handleFile(f *zip.File, targetPath, decodeName string) error {
65-
var err error
6665
fpath := filepath.Join(targetPath, decodeName)
6766
if f.FileInfo().IsDir() {
68-
os.MkdirAll(fpath, os.ModePerm)
67+
return os.MkdirAll(fpath, os.ModePerm)
6968
} else {
70-
if err = os.MkdirAll(filepath.Dir(fpath), os.ModePerm); err != nil {
69+
if err := os.MkdirAll(filepath.Dir(fpath), os.ModePerm); err != nil {
7170
return err
7271
}
7372
inFile, err := f.Open()
7473
if err != nil {
7574
return err
7675
}
76+
defer inFile.Close()
7777
outFile, err := os.OpenFile(fpath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode())
7878
if err != nil {
7979
return err
8080
}
81+
defer outFile.Close()
8182
buf := bufio.NewWriter(outFile)
8283
if _, err = io.Copy(buf, inFile); err != nil {
8384
return err
8485
}
85-
buf.Flush()
86-
inFile.Close()
87-
outFile.Close()
86+
return buf.Flush()
8887
}
89-
return err
9088
}

utils/zip.go

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import (
1111

1212
// 示例 zip.Zip("MCSManager 9.4.5_win64_x86", "./test.zip") 可使用相对路径和绝对路径
1313
func Zip(filePath []string, zipPath string) error {
14-
var err error
15-
if zipPath, err = filepath.Abs(zipPath); err != nil {
14+
zipPath, err := filepath.Abs(zipPath)
15+
if err != nil {
1616
return err
1717
}
1818
if strings.ToLower(filepath.Ext(zipPath)) != ".zip" {
@@ -24,6 +24,7 @@ func Zip(filePath []string, zipPath string) error {
2424
}
2525
defer zipfile.Close()
2626
buf := bufio.NewWriter(zipfile)
27+
defer buf.Flush()
2728
zw := zip.NewWriter(buf)
2829
defer zw.Close()
2930
for _, fPath := range filePath {
@@ -35,34 +36,25 @@ func Zip(filePath []string, zipPath string) error {
3536
if err != nil {
3637
return err
3738
}
38-
var zipfile io.Writer
39-
if !strings.HasSuffix(filepath.Dir(fPath), `\`) {
40-
fPath = filepath.Dir(fPath) + `\`
41-
}
4239
if info.IsDir() {
43-
if !strings.HasSuffix(path, `\`) && !strings.HasSuffix(path, `/`) {
44-
path = path + `/`
45-
}
46-
_, err = zw.Create(strings.TrimPrefix(path, fPath))
40+
_, err = zw.Create(strings.TrimPrefix(strings.TrimPrefix(path, filepath.Dir(fPath)), string(os.PathSeparator)) + `/`)
41+
return err
42+
}
43+
zipfile, err := zw.Create(strings.TrimPrefix(strings.TrimPrefix(path, filepath.Dir(fPath)), string(os.PathSeparator)))
44+
if err != nil {
4745
return err
48-
} else {
49-
zipfile, err = zw.Create(strings.TrimPrefix(path, fPath))
50-
if err != nil {
51-
return err
52-
}
5346
}
5447
f1, err := os.Open(path)
5548
if err != nil {
5649
return err
5750
}
58-
io.Copy(zipfile, f1)
59-
f1.Close()
60-
return nil
51+
defer f1.Close()
52+
_, err = io.Copy(zipfile, f1)
53+
return err
6154
})
6255
if err != nil {
6356
return err
6457
}
6558
}
66-
buf.Flush()
6759
return err
6860
}

0 commit comments

Comments
 (0)