@@ -11,8 +11,8 @@ import (
1111
1212// 示例 zip.Zip("MCSManager 9.4.5_win64_x86", "./test.zip") 可使用相对路径和绝对路径
1313func 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