当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang read_file_info(File)用法及代码示例


read_file_info(File) -> {ok, FileInfo} | {error, Reason}
read_file_info(File, Opts) -> {ok, FileInfo} | {error, Reason}
OTP R15B
类型:
File = name_all() | io_device()
Opts = [file_info_option()]
FileInfo = file_info()
Reason = posix() | badarg

检索有关文件的信息。如果成功则返回{ok, FileInfo},否则返回{error, Reason}FileInfo 是一条记录 file_info ,在内核包含文件 file.hrl 中定义。在调用该函数的模块中包含以下指令:

-include_lib("kernel/include/file.hrl").

atimemtimectime 中返回的时间类型取决于 Opts :: {time, Type} 中设置的时间类型,如下所示:


local

返回当地时间。


universal

返回通用时间。


posix

返回 Unix 时间纪元(即 1970-01-01 00:00 UTC)以来或之前的秒数。

默认为 {time, local}

如果选项raw设置后,不会调用文件服务器,仅返回本地文件信息。请注意,这将破坏该模块的原子性保证,因为它可能会与并发调用竞争write_file_info/1,2 .

当为函数指定 I/O 设备而不是文件名时,此选项无效。使用open/2raw模式首先获取文件说明符。

注意

由于大多数操作系统上的文件时间都以 POSIX 时间存储,因此使用选项 posix 查询文件信息会更快。

记录file_info包含以下字段:


size = integer() >= 0

文件大小(以字节为单位)。


type = device | directory | other | regular

文件的类型。还可以包含symlink当返回时read_link_info/1,2.


access = read | write | read_write | none

当前系统对该文件的访问权限。



atime = date_time() | integer() >= 0

上次读取文件的时间。



mtime = date_time() | integer() >= 0

上次写入文件的时间。



ctime = date_time() | integer() >=0

该时间字段的解释取决于操作系统。在 Unix 上,这是文件或 inode 最后一次更改的时间。在 Windows 中,这是创建时间。


mode = integer() >= 0

文件权限为以下位值的总和:


8#00400

读取权限:所有者


8#00200

写权限:所有者


8#00100

执行权限:所有者


8#00040

读取权限:组


8#00020

写权限:组


8#00010

执行权限:组


8#00004

读取权限:其他


8#00002

写权限: 其他


8#00001

执行权限: 其他


16#800

执行时设置用户 ID


16#400

执行时设置组ID

在 Unix 平台上,可以设置上面列出的其他位。


links = integer() >= 0

文件的链接数(对于没有链接概念的文件系统,该值始终为 1)。


major_device = integer() >= 0

标识文件所在的文件系统。在 Windows 中,数字表示驱动器,如下所示:0 表示 A:,1 表示 B:,依此类推。


minor_device = integer() >= 0

仅对 Unix 上的字符设备有效。在所有其他情况下,该字段为零。


inode = integer() >= 0

给出 inode 编号。在非 Unix 文件系统上,该字段为零。


uid = integer() >= 0

指示文件的所有者。在非 Unix 文件系统上,该字段为零。


gid = integer() >= 0

给出文件所有者所属的组。在非 Unix 文件系统上,该字段为零。

典型错误原因:


eacces

缺少文件父目录之一的搜索权限。


enoent

该文件不存在。


enotdir

文件名的组成部分不是目录。在某些平台上,会返回enoent

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 read_file_info(File) -> {ok, FileInfo} | {error, Reason}。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。