如何从Elixir中的给定目录返回文件集合?

Fel*_*tis 16 directory collections file elixir

在Ruby中,我可以使用

target_files = Dir["/some/dir/path/*.rb"]
#=> ["/some/dir/path/foo.rb", "/some/dir/path/bar.rb", "/some/dir/path/baz.rb"]
Run Code Online (Sandbox Code Playgroud)

它将返回目录中所有匹配文件的数组.我怎样才能在Elixir中做类似的事情?

Dog*_*ert 24

您正在寻找Path.wildcard/2:

iex(1)> Path.wildcard("/tmp/some/dir/path/*.rb")
["/tmp/some/dir/path/bar.rb", "/tmp/some/dir/path/baz.rb",
 "/tmp/some/dir/path/foo.rb"]
iex(2)> Path.wildcard("/tmp/**/*b*.rb")
["/tmp/some/dir/path/bar.rb", "/tmp/some/dir/path/baz.rb"]
Run Code Online (Sandbox Code Playgroud)


Mic*_*rry 6

如果你想用正则表达式递归收集文件,那就是:filelib.fold_files/5.