You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中使用lapply读取文件夹内CSV文件时遭遇权限拒绝问题求助

合并文件夹中多个CSV文件时遇到权限拒绝错误

尝试对文件夹中的多个CSV文件执行rbind合并操作,昨天代码能正常运行,今天却持续报权限拒绝错误。已经重启过R,操作时也没有打开任何CSV文件。

我的代码:

fp <- "C:/Users/dsmith2/OneDrive - TPWD/Desktop/LMB Telemetry/R/WDMay23/merge/TB"
df <- do.call(rbind,lapply(fp,read.csv))

报错信息:

Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file 'C:/Users/dsmith2/OneDrive - TPWD/Desktop/LMB Telemetry/R/WDMay23/merge/TB': Permission denied


问题根源与解决办法

核心问题:代码逻辑错误

你直接把文件夹路径传给了read.csv,但read.csv只能读取单个文件,没法直接读取文件夹。这才是报错的主要原因——昨天的代码可能包含了获取文件列表的步骤,今天被遗漏了,权限提示只是R尝试把文件夹当成文件打开失败的附带信息。

修复步骤:

  1. 先获取文件夹内所有CSV文件的完整路径
    用list.files()函数筛选目标文件夹下的所有CSV文件,务必加full.names=TRUE拿到完整路径:
    fp <- "C:/Users/dsmith2/OneDrive - TPWD/Desktop/LMB Telemetry/R/WDMay23/merge/TB"
    # 提取文件夹下所有CSV文件的完整路径
    csv_files <- list.files(path = fp, pattern = "\\.csv$", full.names = TRUE)
    # 先打印检查是否获取到正确的文件
    print(csv_files)
    
  2. 处理OneDrive同步干扰
    • 查看OneDrive状态栏,确认该文件夹同步完成后再运行代码
    • 临时把CSV文件复制到本地非OneDrive文件夹(比如桌面新建文件夹),再尝试合并,排除同步锁的影响
  3. 验证文件夹权限
    • 右键目标文件夹→属性→安全,确认当前用户拥有读取权限
    • 尝试以管理员身份启动R/RStudio,再执行代码
  4. 执行合并操作
    确认拿到正确的文件列表后,再执行合并:
    基础R方式:
    df_list <- lapply(csv_files, read.csv)
    df <- do.call(rbind, df_list)
    
    用dplyr更灵活(支持列名不一致的情况):
    library(dplyr)
    df <- bind_rows(lapply(csv_files, read.csv))
    

内容的提问来源于stack exchange,提问作者David Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 16:27:21