首页 > 解决方案 > R,获取Windows中文件名中的完整文件路径字符串(空格等)

问题描述

当然是一个老问题,但我找不到解决方案(也许没有)。在 Unix 上,直接使用 R 函数file.path来获取某个文件的路径。当路径中的空格以~. 如果我需要写,说 Rscript.exe 到文件的路径,这将在 unix 上工作:

x <- list.files(R.home("bin"), full.names = T, pattern = "Rscript")
writeLines(x, con = "path_to_rscript.txt")

在 Windows 上,结果是:

C:/PROGRA~1/R/R-35~1.1/bin/x64/Rscript.exe

我本来想要的东西是:

C:/Program Files/R-3.5.1/bin/x64/Rscript.exe

有没有办法规避这种行为(大写的 PROGRA 是什么?)。

标签: rwindowsfile

解决方案


确实,结帐normalizePath

normalizePath(path, winslash = "\\", mustWork = NA)

其中明确指出:

在 Windows 上,它将相对路径转换为绝对路径, 路径元素的短名称转换为长名称,并确保分隔符是由 winslash 指定的。它将不区分大小写地匹配路径并返回规范大小写。可以使用在当前语言环境中无效的 UTF-8 编码路径。


推荐阅读