R语言【base】——dir.exists()和dir.create()目录和文件权限的操作

Package base version 4.3.2


Parameters

R 复制代码
dir.exists(paths)

dir.create(path, showWarnings = TRUE, recursive = FALSE, mode = "0777")

Sys.chmod(paths, mode = "0777", use_umask = TRUE)

Sys.umask(mode = NA)

参数【path】:是一个字符向量,包含一个路径名。

参数【paths】:字符向量,其中包含文件或目录路径。

参数【showWarnings】:逻辑值。是否应显示失败警告?

参数【recursive】:逻辑值。是否应该创建路径中除最后一个元素之外的其他元素?如果为 TRUE,就像 Unix 命令 mkdir -p。

参数【mode】:在 Unix-alikes 上使用的模式:它将被 as.octmode 强制使用。对于 Sys.chmod,它将沿路径循环使用。

参数【use_umask】:逻辑值。模式是否应受 umask 设置的限制?

dir.exists 检查路径是否存在(与 file.exists 意义相同),并且是目录。

dir.create 会创建路径的最后一个元素,除非参数【recursive】= TRUE。路径分隔符尾部将被丢弃。在 Windows 环境下,路径指定中允许包含驱动器,除非路径是根目录,否则将相对于该驱动器上的当前目录进行解释。在 Windows 环境下,模式将被忽略。

Windows 的一个怪癖是,目录创建可能会报告成功,但创建的目录名却不一样,例如,dir.create("G.S.") 创建的是""G.S" "。这是无记录的,具体情况尚不清楚(可能取决于 Windows 的版本)。此外,还要避免目录名尾部有空格。

Sys.chmod 设置一个或多个文件的权限。Windows 系统函数对参数【mode】的解释是非 POSIX 的,只支持设置文件的只读属性。因此,R 对参数【mode】的解释是,当且仅当 (mode & 0200) == 0(以八进制解释)时,设置为只读。Windows 在某些文件系统(如 NTFS 版本)上有一个更为广泛的文件权限系统,与此系统调用无关。

Sys.umask 设置 umask 并返回前一个值:作为一种特殊情况,mode = NA 只返回当前值。Windows 上的所有文件都被视为可读文件,而文件是否可执行并不是 Windows 的概念。因此,umask 只控制文件是否可写:设置为 "200" 后,随后创建的文件(而不是目录)将只读。


Values

dir.exists 返回 TRUE 或 FALSE 值的逻辑向量(不含名称)。

dir.create 和 Sys.chmod 会以隐形方式返回一个逻辑向量,表明对每个尝试操作的文件的操作是否成功。如果目录已经存在,dir.create 将显示操作失败。如果 showWarnings = TRUE,dir.create会对意外失败发出警告(例如,如果参数【recursive】= TRUE,则不会对缺失值或已存在的组件发出警告)。


Example

R 复制代码
if(!dir.exists(occ.folder)) {dir.create(occ.folder, recursive = T)}
相关推荐
超级架构师6 小时前
让 COBOL 长出 AI 大脑:原生 Agent 核心框架 praxo-core 深度剖析
c语言·开发语言·c++·人工智能·python·架构·ai编程
Non-existent9876 小时前
在 WPS/Excel 里做地理数据处理:功能市场 + 奥维 / Google Earth / QGIS 三种跳转实战
开发语言·javascript·ecmascript
xiaolang_8616_wjl6 小时前
c++游戏_宝可梦大世界(源代码)
开发语言·c++·游戏
Leinwin7 小时前
Copilot Studio 实战:多模型选择、GitHub Copilot harness 计费与 Copilot Credits 额度管理
开发语言·c#
余额瞒着我当琳7 小时前
C++异常,异常的概念,异常抛出与捕获,RAII 和智能指针的设计思路,C++标准库一些指针的使用
java·开发语言·c++·算法
严谨的麻辣烫7 小时前
固定 IP 稳定性如何检测?使用 Python 实现网络连通性与耗时监控
开发语言·数据库·php
FuckPatience7 小时前
C# Winform 使用Label循环显示闪烁
开发语言·c#
码小猿的CPP工坊8 小时前
C++跨平台开发之基于wxWidgets开发GUI程序简介-002
开发语言·c++