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

R更新至4.1.1后调用file.remove删除文件提示Permission denied排查

R 4.1.1升级后文件占用无法删除报错排查方向

触发报错的核心代码片段:

write_csv(VPTS, "temp.csv")
VPTS <- read_csv("temp.csv", col_types = cols())
file.remove("temp.csv")

对应报错信息:

In file.remove("temp.csv") :
  cannot remove file 'temp.csv', reason 'Permission denied'

可按以下方向逐一排查:

  • 验证readr包句柄泄漏问题:write_csv与read_csv均为readr包提供的函数,适配R 4.1.1的高版本readr存在文件连接未自动释放的已知问题。可在read_csv执行后、file.remove执行前插入closeAllConnections(),测试文件是否可正常删除。
  • 排查惰性读取机制影响:高版本readr默认使用vroom作为底层读取引擎,默认启用惰性读取,文件读取完成后不会立即释放句柄,仅当关联对象被回收时才会释放资源。可修改read_csv调用参数,添加lazy = FALSE强制读取完成后立即释放文件,验证问题是否复现。
  • 验证GC触发逻辑:在read_csv执行后插入gc()指令主动触发垃圾回收,释放未被引用的资源句柄,排查是否为自动GC未触发导致的句柄残留。
  • 交叉验证IO函数兼容性:将读写逻辑替换为R原生的write.csv()与read.csv()执行测试,如果原生函数无文件占用问题,即可锁定问题根源为readr包与R 4.1.1的版本兼容问题。
  • 定位句柄持有进程:打开Windows资源监视器,在「关联句柄」栏目搜索temp.csv,查看持有该文件句柄的具体模块,可直接定位未释放资源的依赖库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:18:01