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 <- lists:seq(1, 10)].
那么可以利用 file:path_eval/2 来动态解析这个文件
file:path_eval([".", "/app/test"], "test_file_path_eval.erl").