|
@@ -397,14 +397,22 @@ func addDirToZip(dirPath string, zipWriter *zip.Writer) error {
|
|
|
}
|
|
|
defer file.Close()
|
|
|
|
|
|
+ // 处理路径,确保保留相对路径结构
|
|
|
+ relPath, err := filepath.Rel(dirPath, path)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
header, err := zip.FileInfoHeader(info)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- // Adjust the header name to reflect the relative path in the ZIP file
|
|
|
- header.Name = strings.TrimPrefix(path, dirPath)
|
|
|
- header.Name = filepath.ToSlash(header.Name)
|
|
|
+ header.Name = filepath.ToSlash(relPath)
|
|
|
+
|
|
|
+ // 如果路径不是相对路径,添加一个前缀 `./`
|
|
|
+ if !strings.HasPrefix(header.Name, "./") && !strings.HasPrefix(header.Name, "/") {
|
|
|
+ header.Name = "./" + header.Name
|
|
|
+ }
|
|
|
|
|
|
writer, err := zipWriter.CreateHeader(header)
|
|
|
if err != nil {
|