我正在尝试扫描给定目录,只需要接收目录。这样可以返回给定dir
中的所有文件和文件夹:
dir = "/Users/user/releases/"
folders =
File.ls(dir)
|> elem(1)
是否可以过滤folders
以仅保留目录,而不保留单个文件?谢谢!
答案 0 :(得分:2)
您可以使用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"]