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


R file.info 提取文件信息


R语言 file.info 位于 base 包(package)。

说明

用于提取有关用户文件系统上的文件信息的实用函数。

用法

file.info(..., extra_cols = TRUE)

file.mode(...)
file.mtime(...)
file.size(...)

参数

...

包含文件路径的字符向量。 Tilde-expansion 已完成:参见 path.expand

extra_cols

逻辑:返回所有列,而不仅仅是前六列。

细节

‘file’ 的构成是 OS-dependent,但包含目录。 (但是,在 Windows 上,目录名称不得包含尾部反斜杠或斜杠。)另请参阅帮助中有关不区分大小写的文件系统的 file.exists 的部分。

文件 ‘mode’ 遵循 POSIX 约定,给出三个八进制数字,分别总结文件所有者、所有者组和任何人的权限。每个数字都是读 (4)、写 (2) 和执行/搜索 (1) 权限的逻辑或。

请参阅files 了解如何解释带有标记编码的文件路径。

在 UNIX 上:

在大多数系统上都遵循符号链接,因此给出的是有关链接指向的文件的信息,而不是有关链接的信息。

在 Windows 上:

文件模式可能仅在 NTFS 文件系统上有用,并且似乎所有三个数字都指文件的所有者。执行/搜索位是为目录和基于文件扩展名的文件设置的(例如,‘。EXE文件', '.com', '.cmd' 和 '。蝙蝠’文件)。file.access将提供更可靠的读/写访问可用性视图R过程。

可以使用在当前区域设置中无效的 UTF-8 编码文件名。

遵循连接点和符号链接,因此给出有关链接指向的文件/目录的信息,而不是有关链接的信息。

对于 file.info() ,具有行名称、文件名和列的 DataFrame

size

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

isdir

逻辑:文件是目录吗?

mode

"octmode" 的整数。文件权限,以八进制打印,例如 644

mtime, ctime, atime

"POSIXct" 的对象:文件修改、“上次状态更改”和上次访问时间。

在 UNIX 上:
uid:

整数,文件所有者的用户 ID。

组号:

整数,文件组的组 ID。

名称:

字符,uid 解释为用户名。

姓名:

字符,gid 解释为组名称。

未知的用户和组名称将为 NA

仅在 Windows 上:
EXE文件:

指示可执行文件类型的字符。可能的值为 "no""msdos""win16""win32""win64""unknown" 。请注意,文件(例如脚本文件)可以根据模式位来执行,但在这个意义上是不可执行的。

如果 extra_cols 为 false,则仅返回前六列:因为这些都可以从单个 C 系统调用中找到,所以速度会更快。 (但是,正确配置的系统将使用“名称服务缓存守护进程”来加速名称查找。)

不存在或不可读文件的条目将为 NA

uidgidunamegrname 列可能无法在非 POSIX 类 Unix 系统上提供,并且不会在 Windows 上提供。

三个文件时间的含义取决于操作系统和文件系统。在 Windows 本机文件系统上,ctime 是文件创建时间(大多数类 Unix 文件系统上不会记录该时间)。 “文件访问”和“上次访问时间”的含义取决于系统。

文件时间的分辨率取决于操作系统和文件系统的类型。现代文件系统通常以微秒或更高的精度记录时间:值得注意的例外是 macOS 上的 HFS+(以秒为单位记录)和较旧的 FAT 系统上的修改时间(以 2 秒的增量记录)。请注意,"POSIXct" 时间默认以整秒为单位打印:要更改此设置,请参阅 strftime

file.mode()file.mtime()file.size() 是快速便捷的包装器,仅返回其中一列。

注意

一些(现在较旧的)类似 UNIX 的系统允许创建超过 2Gb 的文件,但不能由stat系统调用。此类文件可能会显示为不可读(并且很可能无法被任何人读取)R的输入函数)。

例子

ncol(finf <- file.info(dir()))  # at least six
finf # the whole list
## Those that are more than 100 days old :
finf <- file.info(dir(), extra_cols = FALSE)
finf[difftime(Sys.time(), finf[,"mtime"], units = "days") > 100 , 1:4]

file.info("no-such-file-exists")

## E.g., for R-core, in a R-devel version:
if(Sys.info()[["sysname"]] == "Linux") 
    sort(file.mtime(file.path(R.home("bin"),
                             c("",
                               file.path(c("", "exec"), "R")))
         ))

也可以看看

Sys.readlink 了解符号链接, filesfile.accesslist.filesDateTimeClasses 了解日期格式。

Sys.chmod 更改权限。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Extract File Information。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。