我正在试验grpc
,用于将大型文件和目录从服务器传输到客户端。当我传输目录时,我使用zip
包创建一个zip编写器来创建目录的存档,然后使用grpc传输。
zipfile, err := os.Create(target)
zip.NewWriter(zipfile)
这有效,但我想知道是否有任何方便的方法将目录及其内容(文件和子目录)读入[]字节数组以便通过wrire进行传输。
答案 0 :(得分:2)
您可以自由使用任何实现io.Writer
界面的内容作为您的zip存档的目的地zip.NewWriter
如果您希望将其存储到字节切片中并且事先不知道它的大小,我建议您使用bytes.Buffer
作为目的地:
buffer := &bytes.Buffer{}
zip.NewWriter(buffer)
... do anything you need
resultBytesSlice := buffer.Bytes()