如何将具有重复文件名的文件复制到一个目录中,并通过在 R 中自动重命名重复项来保留这两个文件?

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 中自动重命名重复文件来保留这两个文件?

我使用的代码:

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)
}

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

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

file.rename 的第二个参数将新文件路径粘贴到以 "file_" 为前缀的文件名和一个计数器。 basename 去掉原始文件路径,returns 只去掉文件名。添加计数器后,您可以确定 none 个文件具有相同的名称。