> Erlang中文手册 > path_eval/2 对在一个文件里的 Erlang 表达式进行解析

file:path_eval/2

对在一个文件里的 Erlang 表达式进行解析

用法:

path_eval(Path, Filename) -> {ok, FullName} | {error, Reason}

查找路径 Path 下的文件,直到 Filename 被找到。如果 Filename 是一个绝对路径的文件,那么 Path 将被忽略。然后从文件里读取并解析 Erlang 表达式,每一个表达式由 "." 隔开(或者是由 "," 隔开,一组表达式代码块也认为是一个表达式)。最后解析的结果不会返回;在文件里的任何表达式代码块必须有它自己的功能作用。返回的结果有以下:

{ok, FullName}:文件被读取并解析。FullName 是文件的全部路径信息。

{error, enoent}:在路径下的任何文件目录,找不到指定的文件。

{error, atom()}:当打开或者是读取文件时发生了一个错误。

{error, {Line, Mod, Term}}:当解析 Erlang 表达式时发生了一个错误。可以使用 file:format_error/1 函数把这 three-element 的元组信息转为更详细直观的错误描述。

假设在当前根目录下的 test 文件夹里有 test_file_path_eval.erl 这个文件,文件的内容如下:

Fun = fun(E) ->
    io:format("~p~n", [E])
end,
[Fun(E) || E 

那么可以利用 file:path_eval/2 来动态解析这个文件

file:path_eval([".", "/app/test"], "test_file_path_eval.erl").