我有一个文件x
出现在目录中,list.files
x <- "./data-raw/paths/calculate-route-by-FROM-TO/2017-05-2075--FROM-Flinders-Street-Railway-Station--Melbourne-Victoria-3004--VIC--TO-Melbourne-Sports-Aquatic-Centre--30-Aughtie-Dr--Melbourne-VIC-3206--VIC-csv"
x %in% list.files("./data-raw/paths", recursive = TRUE, full.names = TRUE)
# [1] TRUE
file.exists(x)
# [1] FALSE
请注意,x
缺少扩展程序,但我在?file.exists
中找不到这样的警告:
file.exists
返回一个逻辑向量,指示其参数命名的文件是否存在。 (此处'存在'是系统stat
调用的意义:只有当您拥有stat所需的权限时,文件才会被报告为存在。存在也可以由{{1}检查可能使用不同的权限,因此获得不同的结果。请注意,文件的存在并不意味着它是可读的:对于那个使用file.access
。)'文件'的构成取决于系统,但应该包括目录。 (但是,目录名称在Windows上不得包含尾部反斜杠或斜杠。)请注意,如果文件是类似Unix的符号链接,则结果表明链接是否指向实际文件,而不仅仅是链接是否存在。最后,请注意存在检查R对象是否存在的不同函数。
文档中唯一的提示是访问限制可能会导致file.access
,而FALSE
确实是file.access(x)
但我似乎可以访问该文件(以及其他非常类似的文件)不受影响的文件。)
答案 0 :(得分:4)
Windows的文件名长度(260个字符)有一个上限,-1
超过了。缩短文件会导致x
返回file.exists
。