肯定是一个老问题,但是我找不到解决方案(也许没有解决方案)。在Unix上,直接使用R函数file.path
获取某个文件的路径是很直接的。当路径中的空格返回~
时,在Windows下如何做同样的事情。
如果我需要编写,请说出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有什么用?)。
答案 0 :(得分:4)
确实,结帐normalizePath:
normalizePath(path, winslash = "\\", mustWork = NA)
其中明确指出:
在Windows上,它将相对路径转换为绝对路径,转换 路径元素到长名称的短名称,并确保分隔符 是winslash指定的。它将不区分大小写地匹配路径 并返回标准案例。 UTF-8编码的路径在 可以使用当前语言环境。