Ver código fonte

fix: 解决打包文件没有保持相对目录的问题

HeWang 10 meses atrás
pai
commit
b7bd6034ab
1 arquivos alterados com 11 adições e 3 exclusões
  1. 11 3
      biz/handler/map_service/map_service.go

+ 11 - 3
biz/handler/map_service/map_service.go

@@ -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 {