func Open(z *zip.Reader, path ...string) (io.ReadCloser, error) {
	f := Find(z, path...)
	if f == nil {
		fmt.Errorf("no such file: %q", Join(path...))
	}
	return f.Open()
}
Opens the file at the given path if possible, otherwise returns an error.
package ziputil
import (
	"archive/zip"
	"fmt"
	"io"
	"os"
	"path/filepath"
	"strings"
	"text/tabwriter"
	"github.com/GoogleCloudPlatform/gcp-service-broker/utils/stream"
)
func List(z *zip.Reader, w io.Writer) {
	sw := tabwriter.NewWriter(w, 0, 0, 2, ' ', tabwriter.StripEscape)
	fmt.Fprintln(sw, "MODE\tSIZE\tNAME")
	for _, fd := range z.File {
		fmt.Fprintf(sw, "%s\t%d\t%s\n", fd.Mode().String(), fd.UncompressedSize, fd.Name)
	}
	sw.Flush()
}
func Join(path ...string) string {
	return strings.Join(path, "/")
}
func Clean(path ...string) string {
	joined := filepath.ToSlash(Join(path...))
	slashStrip := strings.TrimPrefix(joined, "/")
	dotStrip := strings.TrimPrefix(slashStrip, "./")
	return dotStrip
}
func Find(z *zip.Reader, path ...string) *zip.File {
	name := Join(path...)
	for _, f := range z.File {
		if f.Name == name {
			return f
		}
	}
	return nil
}