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

使用R语言file.copy复制相机陷阱图片时的目录与同名文件问题

相机陷阱图片筛选复制问题修复方案

问题原因

你当前的R代码直接将所有图片复制到目标根目录E:/,导致:

  • 同名文件被自动覆盖,最终仅保留一份
  • 未保留原有的季节、站点等多层目录结构
  • 批量复制时因路径冲突,部分文件未成功复制

修复方案

需要为每个图片构建与源路径一致的目标目录结构,确保每个文件都被复制到对应子文件夹中,避免同名冲突。具体代码如下:

# 读取筛选后的图片路径CSV文件
tagged_img <- read.csv(file.path(dir, "images_filtered.csv"), header = TRUE, sep = ";")
file_paths <- tagged_img$file_path

# 定义目标根目录
target_root <- "E:/"

# 遍历处理每个图片文件
for (fp in file_paths) {
  # 提取源路径中驱动器后的相对路径,保留原目录结构
  relative_path <- sub("^[A-Za-z]:/", "", fp)
  # 构建完整的目标文件路径
  target_path <- file.path(target_root, relative_path)
  
  # 创建目标文件所在的目录(如果不存在)
  target_dir <- dirname(target_path)
  if (!dir.exists(target_dir)) {
    dir.create(target_dir, recursive = TRUE)
  }
  
  # 复制文件,保留原文件日期,禁止覆盖(若需覆盖可将overwrite设为TRUE)
  file.copy(from = fp, to = target_path, copy.date = TRUE, overwrite = FALSE)
}

关键说明

  • 保留目录结构:通过sub提取源路径的相对部分,拼接目标根目录,确保目标路径与源路径的子文件夹结构完全一致
  • 避免同名冲突:每个文件的目标路径因子文件夹不同而唯一,不会出现同名覆盖问题
  • 确保全量复制:循环逐个处理每个文件,同时提前创建目标目录,避免因目录不存在导致的复制失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:30:53