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

为何R语言list.files()函数会返回不存在的文件?

问题原因与解决方法

为什么会出现~$开头的文件?

  • 这些~$开头的文件真实存在,只是Windows系统默认将它们标记为「隐藏文件」,所以你在文件管理器里看不到,但R的list.files()能读取到。
  • 这类文件是Office套件(比如Word)的临时锁定文件:当你用Word打开某个txt文件时,Office会自动生成这个临时文件,用于防止多人同时编辑同一文件,文件命名规则就是~$+原文件名。
  • all.files = FALSE参数无效的原因:这个参数只控制是否显示Unix风格的隐藏文件(以.开头的文件),对Windows系统标记为隐藏属性的文件不起作用,所以即使设置了该参数,这些~$文件还是会被列出。

更可靠的解决方法

方法1:用正则表达式直接排除~$开头的文件

# 匹配不以~开头、以.txt结尾的文件
txt_files <- list.files(pattern = "^[^~].*\\.txt$")

方法2:过滤Windows隐藏属性的文件

# 先获取所有txt文件
txt_files <- list.files(pattern = "\\.txt$")
# 获取文件信息,筛选出非目录且非隐藏的文件
file_info <- file.info(txt_files)
txt_files <- txt_files[!file_info$isdir & !file_info$hidden]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 10:27:33