我有一个很长的文件路径(年/月/日/分区目录样式,我只对某些分区感兴趣 - 所以通配符不能正常工作)。读取功能I内部使用调用normalizePaths
。但是,如下面的简化示例所示,normalizePaths
(假设我使用绝对路径开始)的唯一影响是将我的路径截断为4095个字符。这使它成为无效路径并导致我的读操作失败。
path <- paste0(rep("/pretend/path", times=400), collapse="/")
nchar(path)
# [1] 5599
nchar(normalizePath(path, mustWork = FALSE))
# [1] 4095
substr(path, 1, 4095) == normalizePath(path, mustWork = FALSE)
# [1] TRUE
我正在使用R v3.4.1。
为什么normalizePaths
会截断?有没有办法改变这种行为(例如,使用options()
设置)?
更新添加sessionInfo
R version 3.4.1 (2017-06-30)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: Red Hat Enterprise Linux Server release 6.6 (Santiago)
Matrix products: default
BLAS: /usr/lib64/R/lib/libRblas.so
LAPACK: /usr/lib64/R/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.1