gpt4 book ai didi

go - 将文件添加到 zip 存档而不压缩

转载 作者:IT王子 更新时间:2023-10-29 00:40:41 24 4
gpt4 key购买 nike

在 Go 中,我们如何在不压缩的情况下将文件添加到 zip 存档?

对于上下文,我跟随一个 IBM tutorial创建一个 epub zip 文件。它显示了以下 Python 代码:

import zipfile, os

def create_archive(path='/path/to/our/epub/directory'):
'''Create the ZIP archive. The mimetype must be the first file in the archive
and it must not be compressed.'''

epub_name = '%s.epub' % os.path.basename(path)

# The EPUB must contain the META-INF and mimetype files at the root, so
# we'll create the archive in the working directory first and move it later
os.chdir(path)

# Open a new zipfile for writing
epub = zipfile.ZipFile(epub_name, 'w')

# Add the mimetype file first and set it to be uncompressed
epub.write(MIMETYPE, compress_type=zipfile.ZIP_STORED)

# For the remaining paths in the EPUB, add all of their files
# using normal ZIP compression
for p in os.listdir('.'):
for f in os.listdir(p):
epub.write(os.path.join(p, f)), compress_type=zipfile.ZIP_DEFLATED)
epub.close()

在此示例中,不得压缩文件 mimetype(仅包含内容 application/epub+zip)。

围棋 documentation确实提供了一个写入 zip 存档的示例,但所有文件都是压缩的。

最佳答案

将文件添加到文件到zip.Writer 有两种方法:Create 方法和CreateHeaderCreate 仅允许您指定文件名,而 CreateHeader 方法提供了更大的灵 active ,包括设置压缩方法的能力。

例如:

w, err := zipwriter.CreateHeader(&zip.FileHeader{
Name: filename,
Method: zip.Store,
})

您现在可以将数据写入 w,就像 Go 文档中的示例代码一样,它会在不压缩的情况下存储在 zip 文件中。

关于go - 将文件添加到 zip 存档而不压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23717101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com