Comprime el contenido dentro de la carpeta sin la carpeta raíz

Quiero comprimir algún directorio dentro del contenido en un archivo zip

p.ej. supongo que tengo esta estructura de directorios

dir1
  file1.html
  file2.go

Ahora quiero comprimirlo endir1.zip que esta funcionando

cuando lo extraigo tengo la misma estructura ... Quiero comprimir elcontenido dentro que cuando lo descomprimo obtengo los archivos dentro sin la carpeta 'dir1' como root después de extraerlo

file1.html
file2.go

Intento jugar con la ruta con este código y no funciona. ¿Alguna idea de lo que extraño aquí?

he intentado

func Zipit(source, target string) error {
    zipfile, err := os.Create(target)
    if err != nil {
        return err
    }
    defer zipfile.Close()

    archive := zip.NewWriter(zipfile)
    defer archive.Close()

    info, err := os.Stat(source)
    if err != nil {
        return nil
    }

    var baseDir string
    if info.IsDir() {
        baseDir = filepath.Base(source)
    }

    filepath.Walk(source, func(path string, info os.FileInfo, err error) error {
        if err != nil {
            return err
        }

        header, err := zip.FileInfoHeader(info)
        if err != nil {
            return err
        }

        if baseDir != "" {
            header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, source))
        }

        if info.IsDir() {
            header.Name += "/"
        } else {
            header.Method = zip.Deflate
        }

        writer, err := archive.CreateHeader(header)
        if err != nil {
            return err
        }

        if info.IsDir() {
            return nil
        }

        file, err := os.Open(path)
        if err != nil {
            return err
        }
        defer file.Close()
        _, err = io.Copy(writer, file)
        return err
    })

    return err
}



dir.Zipit("path/dir1" +"/", "test"+".zip")

¿O tal vez hay una manera más simple en GO de lograr esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta