使用R的file.path函数创建目录路径时出现多余正斜杠问题
问题原因
file.path函数默认会使用当前运行系统的标准路径分隔符拼接路径片段:Windows系统下默认为反斜杠\,Linux/macOS等类Unix系统下默认为正斜杠/。如果你在类Unix环境下运行Windows格式的路径代码,就会出现正反斜杠混合的情况。- 你传入的路径片段末尾自行添加了冗余的路径分隔符,
file.path不会自动清理这些已存在的分隔符,会直接在两个片段中间插入系统默认分隔符,最终就出现了\\/这种异常的混合分隔符输出。
解决方法
场景1:需要固定生成Windows格式路径(不管运行环境)
不要在路径片段的首尾手动加任何分隔符,同时给file.path指定fsep = "\\"参数强制使用反斜杠拼接:
# 不需要末尾反斜杠的写法 directory <- file.path( r"(C:\File\Folder1\Folder2)", "Source", fsep = "\\" ) # 需要末尾保留反斜杠的写法,最后加空字符串参数即可 directory <- file.path( r"(C:\File\Folder1\Folder2)", "Source", "", fsep = "\\" )
上述代码的输出就是你期望的C:\\File\\Folder1\\Folder2\\Source\\。
场景2:需要适配当前运行系统的路径格式
不要写死带反斜杠的Windows路径,直接把每个路径层级作为独立参数传入file.path,函数会自动适配当前系统的分隔符:
# Windows下自动输出反斜杠路径,类Unix系统下自动输出正斜杠路径 directory <- file.path("C:", "File", "Folder1", "Folder2", "Source", "")
内容的提问来源于stack exchange,提问作者user35131
相关产品推荐
相关产品推荐

