當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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}。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。