我知道如何在Elixir中以写入模式打开一个zip文件:
file = File.open("myzip.zip", [:write, :compressed])
但在此之后,如果我有一个目录/home/lowks/big_files,我怎么写这个file?
如果您正在使用zip文件,则需要使用:zip.extract('foo.zip'),和:zip.create(name, [{'foo', file1data}, file2path, ...]).
:zip.create 获取一个名称,以及一个可以包含两个选项之一的列表:
:zip.extract可以采用文件的路径,也可以采用代表zip存档的二进制数据(也许是从File.openzip上做).
您可以执行以下操作以获取路径中的文件列表并将其压缩:
files = File.ls!(path)
|> Enum.map(fn filename -> Path.join(path, filename) end)
|> Enum.map(&String.to_char_list!/1)
:zip.create('foo.zip', files)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |