使用list.files加载文件报错:移动项目文件夹后无法读取文件
load()无法读取文件但list.files()能找到的解决办法 原始代码
files <- list.files(paste("R Ready Data",group,week,sep = "\\")) for (file in files){ load(paste("R Ready Data",group,week,file,sep="\\")) .......... }
问题描述
代码原本运行正常,移动项目文件夹后出现以下异常:
list.files()可正常定位文件;load()报错,错误信息:
Error in readChar(con, 5L, useBytes = TRUE) : cannot open the connection
In addition: Warning message:
In readChar(con, 5L, useBytes = TRUE) :
cannot open compressed file 'R Ready Data\transgenic\week 1\30_video_2021-08-25T15_19_09DLC_resnet50_Overuse1-Lisa-2021-01-04Jan4shuffle1_750000.Rdata', probable reason 'No such file or directory'
- 尝试使用完整路径(如
C/R Project/R Ready Data...)仍无效; - RStudio内置文件浏览器看不到目标文件,但Windows文件资源管理器中可见。
可能的原因及解决办法
1. 路径拼接错误
Windows系统路径分隔符需用双反斜杠\\,但手动拼接容易出错。建议用R内置的file.path()函数,它会自动适配系统路径规则,避免分隔符问题:
# 替换原路径拼接逻辑 dir_path <- file.path("R Ready Data", group, week) files <- list.files(dir_path) for (file in files){ load(file.path(dir_path, file)) # 后续代码 }
另外注意:Windows完整路径不要写成C/R Project,正确格式是C:\\R Project或C:/R Project(R支持正斜杠作为路径分隔符)。
2. 文件权限或隐藏属性
- 检查文件属性:右键目标文件→属性,取消勾选「隐藏」选项;
- 以管理员身份启动RStudio,再尝试读取文件,避免权限不足导致的访问失败。
3. 特殊字符干扰
路径中的空格(如week 1)、特殊字符可能导致识别异常。用file.path()可自动处理这类情况,也可以尝试将文件夹/文件名中的空格替换为下划线,移除特殊字符。
4. 工作目录不匹配
运行getwd()查看当前R工作目录,若与项目文件夹不符,用setwd("你的项目根目录路径")修正;或者直接使用RStudio的.Rproj项目文件,打开项目后会自动切换到正确工作目录。
内容的提问来源于stack exchange,提问作者Orestis

