GO zip.NewWriter()创建空的zip档案

I have the following function I'v tried to simplify to just adding a single file to a .zip archive.

Whatever I try, the resulting .zip file has no files listed in it. The size of the archive is correct. But when I try to extract all (windows), the archive is empty.

go version go1.10.1 windows/amd64

func Zip(src string, dst string) error {
    destinationFile, err := os.Create(dst)
    if err != nil {
        return err
    }
    myZip := zip.NewWriter(destinationFile)
    file := `C:\MA\testing\cldeploy-local.json`
    zipFile, err := myZip.Create(file)

    fsFile, err := os.Open(file)
    if err != nil {
        return err
    }
    _, err = io.Copy(zipFile, fsFile)
    if err != nil {
        return err
    }
    return nil

    if err != nil {
        return err
    }
    err = myZip.Close()
    if err != nil {
        return err
    }
    return nil
}

When I extract the file an error message appears: The compressed (zipped) Folder ... is invalid.

As answered by @JimB: file needs to be added as relative path only forward slashes. can not start with slash

func Zip(src string, dst string) error {
    destinationFile, err := os.Create(dst)
    if err != nil {
        return err
    }
    myZip := zip.NewWriter(destinationFile)
    file := `C:\MA\testing\cldeploy-local.json`

        // file needs to be added as relative path
        // only forward slashes. can not start with slash
        relPath := strings.TrimPrefix(file, filepath.Dir(src))
        relPath = strings.Replace(relPath, `\`, `/`, -1)
        relPath = strings.TrimLeft(relPath, `/`)

    zipFile, err := myZip.Create(relPath)

    fsFile, err := os.Open(file)
    if err != nil {
        return err
    }
    _, err = io.Copy(zipFile, fsFile)
    if err != nil {
        return err
    }
    return nil

    if err != nil {
        return err
    }
    err = myZip.Close()
    if err != nil {
        return err
    }
    return nil
}