如何将现有文件复制到 Julia 中的 zip 文件夹中

问题描述 投票:0回答:2

我正在尝试将一些现有文件(使用完整文件路径)复制到我使用 Julia 语言创建的 zip 文件夹中。

到目前为止,我已经尝试了 ZipFile.jl 和 InfoZIP,但这两个包都无法将现有文件添加到 zip 文件夹中,只需创建一个新文件来写入。如果有人对如何生成新的 zip 文件夹并用预先存在的文件填充它有任何提示,我将不胜感激。

谢谢

zip julia filesystems
2个回答
0
投票

基本上,您可以读取每个文件并将其写入存档中:

w = ZipFile.Writer("archive.zip")
for filepath in filelist
    f = open(filepath, "r")
    content = read(f, String)
    close(f)
    zf = ZipFile.addfile(w, basename(filepath));
    write(zf, content)
end
close(w)

0
投票

我也在寻找这个功能。 ZipArchives.jl 软件包现在似乎提供了它。

作为一个相对较新的人,我发现这些文档解码起来有点棘手,但值得坚持!

这是一个非常简单的mwe:

using ZipArchives

zipfile = "test.zip"
newfile = "test1.csv"
appfile = "test2.docx"

# Read first file and write to zip.
f = open(newfile, "r")
    content = read(f, String)
close(f)

ZipWriter(zipfile) do w
    zip_newfile(w, newfile; compress=true )
    write(w, content)
end # end of do block closes the zip.

# Now read the next file to append
f = open(appfile, "r")
content = read(f, String)
close(f)

# In this do block, files are appended to the existing zip file.
zip_append_archive(zipfile) do w
    zip_newfile(w, appfile; compress=true)
    write(w, content)
end
© www.soinside.com 2019 - 2024. All rights reserved.