> Erlang中文手册 > open/2 打开一个文件

file:open/2

打开一个文件

用法:

open(Filename, Modes) -> {ok, IoDevice} | {error, Reason}

根据模式 Mods 来打开一个文件 Filename。

以只读的模式打开:

{ok, File} = file:open("/app/rebar.config", read).

以写的模式打开(如果文件不存在,创建一个新文件):

{ok, File} = file:open("/app/rebar.config", write).

以读写的模式打开:

{ok, File} = file:open("/app/rebar.config", [read, write]).

以 append 的模式打开的文件,并在文件末尾进行写操作(如果文件不存在,创建一个新文件):

{ok, File} = file:open("/app/rebar.config", append).

以 raw、binary 模式打开文件:

{ok, File} = file:open("/app/rebar.config", [raw, binary]).

一些典型的错误标示:

  • enoent:文件不存在
  • eacces:缺少访问文件或在父目录下查找文件的权限
  • eisdir:文件不是一个正规合法的文件,它也许是一个目录、一个输入输出或是一个设备
  • enotdir:文件名的某个父目录不是一个正常目录,在一些平台(例如 Window),会用 enoent 代替返回
  • enospc:设备的硬盘空间不足(如果指定了写操作)

可以使用 file:format_error/1 函数来获取以上错误标识的直观错误描述

file:format_error(enoent).
file:format_error(eacces).
file:format_error(eisdir).
file:format_error(enotdir).
file:format_error(enospc).