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

R语言从多子目录复制文件至目标文件夹时报错求助

解决R语言多子目录文件复制/移动问题

我来帮你分析下问题所在,以及对应的解决办法:

错误原因

你用basename(list.files(path, recursive = T))提取了文件名,但这一步丢失了文件的完整路径信息。file.copy需要知道源文件的具体位置,只给文件名的话,R会默认在当前工作目录找这些文件,自然找不到子目录里的文件,所以报错"No such file or directory"。

修正后的代码方案

# 目标文件夹路径
new.folder <- "path/to/new/folder"

# 先确保目标文件夹存在,不存在则自动创建
dir.create(new.folder, recursive = TRUE, showWarnings = FALSE)

# 获取所有子目录中文件的完整路径(关键:full.names = TRUE)
all_files <- list.files(path = "your/source/directory/path", 
                        recursive = TRUE, 
                        full.names = TRUE)

# 复制文件到目标文件夹,overwrite可选,如需覆盖已存在文件设为TRUE
file.copy(from = all_files, to = new.folder, overwrite = FALSE)

关键细节说明

  • list.files的full.names = TRUE参数:会返回每个文件的完整绝对路径(或相对路径,取决于你的path设置),这样file.copy能准确找到源文件。
  • dir.create的recursive = TRUE:如果目标文件夹的上级目录不存在,也会自动创建,避免因为目录不存在导致复制失败。
  • 如果需要移动文件而不是复制,把file.copy换成file.rename即可,但注意file.rename不支持跨文件系统移动(比如从C盘到D盘),这种情况还是先复制再删除源文件更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:52:08