Elixir:写入文件并创建父目录(如果不存在)-一行

时间:2018-12-20 22:47:08

标签: file-io elixir

Elixir中是否具有以下功能:

  • 将内容写入给定的文件路径(或创建文件)
  • 创建父目录是否不存在

目前,我已经写了一个像这样的函数,尽管它相当 不方便为我要写入文件的每个项目编写此文件 父母可能还不存在。

defp write_to_file(path, contents) do
  with :ok <- File.mkdir_p(Path.dirname(path)),
       :ok <- File.write(path, contents)
  do
    :ok
  end
end

最理想的情况是这样的东西作为Elixir标准库的一部分存在,但是我找不到这样的东西

File.write(path, content, create_parents: true)

1 个答案:

答案 0 :(得分:3)

standard library中没有类似的内容。尽管为什么不这样做:

File.mkdir_p!(Path.dirname(path))
File.write(path, contents)

但是,如果您要传递来自mkdir的错误,可以将代码简化如下:

with :ok <- File.mkdir_p(Path.dirname(path)) do
  File.write(path, contents)
end