如何使用Golang将文件添加到现有的zip文件中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Golang将文件添加到现有的zip文件中相关的知识,希望对你有一定的参考价值。
我们可以使用Go语言创建一个zip新文件并添加文件。
但是,如何使用GoLang添加带有现有zip文件的新文件?
如果我们可以使用Create函数,如何获取zip.writer引用?
有点困惑。
答案
经过更多分析后,我发现,无法使用现有的zip文件添加任何文件。
但是,我可以通过跟踪this URL中给出的hack来添加带有tar文件的文件。
另一答案
虽然我还没有尝试使用已经存在的zip文件然后写入它,但我相信你应该能够为它添加文件。
这是我编写的代码,用于创建包含多个文件的集合zip文件,以便加快将数据上传到其他位置。我希望它有所帮助!
type fileData struct {
Filename string
Body []byte
}
func main() {
outputFilename := "path/to/file.zip"
// whatever you want as filenames and bodies
fileDatas := createFileDatas()
// create zip file
conglomerateZip, err := os.Create(outputFilename)
if err != nil {
return err
}
defer conglomerateZip.Close()
zipWriter := zip.NewWriter(conglomerateZip)
defer zipWriter.Close()
// populate zip file with multiple files
err = populateZipfile(zipWriter, fileDatas)
if err != nil {
return err
}
}
func populateZipfile(w *zip.Writer, fileDatas []*fileData) error {
for _, fd := range fileDatas {
f, err := w.Create(fd.Filename)
if err != nil {
return err
}
_, err = f.Write([]byte(fd.Body))
if err != nil {
return err
}
err = w.Flush()
if err != nil {
return err
}
}
return nil
}
以上是关于如何使用Golang将文件添加到现有的zip文件中的主要内容,如果未能解决你的问题,请参考以下文章