Ily*_*lya 2 elixir phoenix-framework
我正在尝试扫描给定的目录并且只需要接收目录。这种方式返回给定中的所有文件和文件夹dir
:
dir = "/Users/user/releases/"
folders =
File.ls(dir)
|> elem(1)
Run Code Online (Sandbox Code Playgroud)
是否可以过滤folders
以仅保留目录而不保留单个文件?谢谢!
您可以过滤文件/目录列表File.dir?/1
以仅获取目录。由于File.ls!/1
只返回文件名,而不是完整路径,您还需要在dir
将文件名传递给之前加入文件名File.dir?/1
:
iex(1)> dir = "."
"."
iex(2)> File.ls!(dir) |> Enum.filter(&File.dir?(Path.join(dir, &1)))
["config", "lib", "test"]
iex(3)> dir = "test"
"test"
iex(4)> File.ls!(dir) |> Enum.filter(&File.dir?(Path.join(dir, &1)))
["foo"]
Run Code Online (Sandbox Code Playgroud)