erlang 读相对路径的文件
时间: 2024-01-22 18:02:18 浏览: 27
在 Erlang 中,可以使用 `file:read_file/1` 函数来读取文件的内容。如果要读取相对路径的文件,可以使用 `filename:absname/1` 函数将相对路径转换为绝对路径。下面是一个简单的示例代码:
```erlang
-module(file_example).
-export([read_file/1]).
read_file(Filename) ->
AbsFilename = filename:absname(Filename),
case file:read_file(AbsFilename) of
{ok, Data} ->
Data;
{error, Reason} ->
io:format("Error reading file: ~s~n", [Reason])
end.
```
在上面的代码中,`filename:absname/1` 函数用于将相对路径转换为绝对路径。然后,使用 `file:read_file/1` 函数读取文件的内容。如果读取成功,将返回一个包含文件内容的二进制数据;如果读取失败,将返回一个包含错误原因的元组。最后,可以根据需要对读取结果进行处理。
你可以使用以下代码来调用 `read_file/1` 函数:
```erlang
file_example:read_file("example.txt").
```
假设 `example.txt` 文件在当前工作目录下,该函数将返回文件的内容。
相关问题
erlang 写文件
在 Erlang 中可以使用 `file:open/2` 和 `io:fwrite/2` 函数来写文件。下面是一个简单的示例代码:
```erlang
-module(file_example).
-export([write_to_file/2]).
write_to_file(Filename, Data) ->
{ok, File} = file:open(Filename, [write, binary]),
io:fwrite(File, "~s", [Data]),
file:close(File).
```
在上面的代码中,`file:open/2` 函数用于打开文件并返回一个文件句柄,其中 `[write, binary]` 表示以二进制写模式打开文件。`io:fwrite/2` 函数用于将数据写入文件,`~s` 表示格式化字符串, `[Data]` 表示要写入的数据。最后,使用 `file:close/1` 函数关闭文件句柄。
你可以使用以下代码来调用 `write_to_file/2` 函数:
```erlang
file_example:write_to_file("example.txt", "Hello, world!").
```
这将创建一个名为 `example.txt` 的文件,并将字符串 "Hello, world!" 写入该文件。
Erlang里面 file:open怎么知道打开文件的路径
在Erlang中,`file:open/2`函数需要传入两个参数,第一个参数是文件路径,第二个参数是打开文件的模式。在文件路径中可以使用相对路径或绝对路径,相对路径是相对于当前工作目录的路径。
例如,如果要打开名为"example.txt"的文件,并且该文件与Erlang代码位于同一目录下,则可以使用以下代码:
```
{ok, FileDescriptor} = file:open("example.txt", [read])
```
在这里,`"example.txt"`就是文件路径,`[read]`表示以只读模式打开文件。如果要打开的文件不在当前目录中,可以使用绝对路径,例如:
```
{ok, FileDescriptor} = file:open("/home/user/Documents/example.txt", [read])
```
在这里,`"/home/user/Documents/example.txt"`就是文件的绝对路径。