如何获取Elixir项目的根目录

tre*_*res 11 elixir

在Elixir项目中,您可以使用

Path.expand
Run Code Online (Sandbox Code Playgroud)

将文件或目录定义为当前文件的相对路径.

例如: Path.expand("../../../lib/file.ex")

但如何从项目的根级别找到路径?

tre*_*res 12

如果您想获取项目的根目录,请使用

File.cwd!
Run Code Online (Sandbox Code Playgroud)

来源:https://groups.google.com/d/topic/elixir-lang-talk/Ls0eJDdWW8

(注意:我只是把它拉到了这里,所以它并没有被埋在谷歌版权墙后面的死亡论坛中,并且受谷歌数据保存政策的约束)

  • 我正在开展一个伞式项目。我正在使用伞中另一个应用程序的模块;在依赖项应用程序中调用“File.cwd!”会返回正在运行的应用程序的根目录,而不是依赖项应用程序的根目录。 (6认同)
  • @Motine 你阅读了论坛讨论吗?Jose 指出,“如果使用 Mix 编译项目,‘File.cwd!’ 将始终指向根目录,因为 Mix 始终从根目录运行。” (3认同)
  • 实际上,[cwd](https://hexdocs.pm/elixir/1.5.3/File.html#cwd/0)这不是项目的根目录。这是当前工作目录(可能不同) (2认同)