|
|
@ -76,25 +76,23 @@ func CompressToZip(dest string, currentPath string, paths []string) error { |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
return err |
|
|
return err |
|
|
} |
|
|
} |
|
|
// 将压缩方法设置为deflate
|
|
|
|
|
|
header.Method = zip.Deflate |
|
|
|
|
|
|
|
|
|
|
|
// 监听的工作目录作为文件的结尾,然后取相对路径
|
|
|
// 监听的工作目录作为文件的结尾,然后取相对路径
|
|
|
header.Name, err = filepath.Rel(filepath.Dir(config.G.FilePath), path) |
|
|
|
|
|
|
|
|
|
|
|
// 在zip存档中设置文件的相对路径
|
|
|
// 在zip存档中设置文件的相对路径
|
|
|
//header.Name, err = filepath.Rel(filepath.Dir(src), path)
|
|
|
header.Name, err = filepath.Rel(filepath.Dir(config.G.FilePath), path) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
return err |
|
|
return err |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 转换为Unix风格的路径分隔符
|
|
|
|
|
|
header.Name = filepath.ToSlash(header.Name) |
|
|
|
|
|
|
|
|
// 目录需要拼上一个 "/" ,否则会出现一个和目录一样的文件在压缩包中
|
|
|
// 目录需要拼上一个 "/" ,否则会出现一个和目录一样的文件在压缩包中
|
|
|
if info.IsDir() { |
|
|
if info.IsDir() { |
|
|
// header.Name += string(os.PathSeparator)
|
|
|
|
|
|
header.Name += "/" |
|
|
header.Name += "/" |
|
|
} else { |
|
|
} else { |
|
|
// 替换一下分隔符,zip不支持 "\\"
|
|
|
// 将压缩方法设置为deflate
|
|
|
header.Name = strings.ReplaceAll(header.Name, "\\", "/") |
|
|
header.Method = zip.Deflate |
|
|
} |
|
|
} |
|
|
// fmt.Printf("zip header:%v\n", header.Name)
|
|
|
// fmt.Printf("zip header:%v\n", header.Name)
|
|
|
// 创建写入头的writer
|
|
|
// 创建写入头的writer
|
|
|
|