【问题标题】:How can I copy files with duplicate filenames into one directory and retain both files by having the duplicate(s) rename automatically in R?如何将具有重复文件名的文件复制到一个目录中并通过在 R 中自动重命名重复文件来保留这两个文件?
【发布时间】:2024-01-23 17:21:01
【问题描述】:

我需要将多个文件夹中的文件复制到一个文件夹中,但是有多个重复项,我需要保留它们。有没有办法将具有重复文件名的文件复制到一个目录中并通过在 R 中自动重命名重复文件来保留这两个文件?

我正在使用的代码:

my_dirs <- list.dirs("C:/desktop/")
library(plyr)
files<-sapply(my_dirs,list.files,full.names=TRUE,pattern=".xlsx")

new_dir<-"C:/desktop/new folder/"

for(file in files) {
  file.copy(file, new_dir)
}

【问题讨论】:

    标签: r copy duplicates plyr file-copying


    【解决方案1】:

    您或许可以改用file.rename。我相信这段代码应该可以工作,但还没有测试过。

    for(i in seq_along(files)) {
      file.rename(files[i], paste0(new_dir, "file_", i, basename(files[i])))
    }
    

    file.rename 的第二个参数将新文件路径粘贴到以“file_”开头的文件名和一个计数器。 basename 去掉原始文件路径,只返回文件名。通过添加计数器,您可以确定没有一个文件具有相同的名称。

    【讨论】: