|
|
@ -206,75 +206,3 @@ func IsFileExist(filename string) bool { |
|
|
} |
|
|
} |
|
|
return false |
|
|
return false |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// package main
|
|
|
|
|
|
|
|
|
|
|
|
// import (
|
|
|
|
|
|
// "archive/zip"
|
|
|
|
|
|
// "fmt"
|
|
|
|
|
|
// "io"
|
|
|
|
|
|
// "os"
|
|
|
|
|
|
// )
|
|
|
|
|
|
|
|
|
|
|
|
// 解压zip文件到指定目录,不覆盖已存在的文件
|
|
|
|
|
|
// func UnzipWithoutOverwrite(zipFile, destDir string) error {
|
|
|
|
|
|
// reader, err := zip.OpenReader(zipFile)
|
|
|
|
|
|
// if err != nil {
|
|
|
|
|
|
// return err
|
|
|
|
|
|
// }
|
|
|
|
|
|
// defer reader.Close()
|
|
|
|
|
|
|
|
|
|
|
|
// for _, file := range reader.Reader.File {
|
|
|
|
|
|
// path := destDir + "/" + file.Name
|
|
|
|
|
|
// if file.FileInfo().IsDir() {
|
|
|
|
|
|
// err = os.MkdirAll(path, file.Mode())
|
|
|
|
|
|
// if err != nil {
|
|
|
|
|
|
// return err
|
|
|
|
|
|
// }
|
|
|
|
|
|
// continue
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// if _, err := os.Stat(path); err == nil {
|
|
|
|
|
|
// // 文件已存在,跳过
|
|
|
|
|
|
// continue
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// rc, err := file.Open()
|
|
|
|
|
|
// if err != nil {
|
|
|
|
|
|
// return err
|
|
|
|
|
|
// }
|
|
|
|
|
|
// defer rc.Close()
|
|
|
|
|
|
|
|
|
|
|
|
// err = os.MkdirAll(getDir(path), os.ModePerm)
|
|
|
|
|
|
// if err != nil {
|
|
|
|
|
|
// return err
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// w, err := os.Create(path)
|
|
|
|
|
|
// if err != nil {
|
|
|
|
|
|
// return err
|
|
|
|
|
|
// }
|
|
|
|
|
|
// defer w.Close()
|
|
|
|
|
|
|
|
|
|
|
|
// _, err = io.Copy(w, rc)
|
|
|
|
|
|
// if err != nil {
|
|
|
|
|
|
// return err
|
|
|
|
|
|
// }
|
|
|
|
|
|
// w.Chmod(file.Mode())
|
|
|
|
|
|
// }
|
|
|
|
|
|
// return nil
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// // 获取目录部分
|
|
|
|
|
|
// func getDir(path string) string {
|
|
|
|
|
|
// return path[:len(path)-len(os.PathSeparator)+1]
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// func main() {
|
|
|
|
|
|
// zipFile := "example.zip"
|
|
|
|
|
|
// destDir := "output"
|
|
|
|
|
|
// err := UnzipWithoutOverwrite(zipFile, destDir)
|
|
|
|
|
|
// if err != nil {
|
|
|
|
|
|
// fmt.Println(err)
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
|