如何将具有重复文件名的文件复制到一个目录中,并通过在 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 个文件具有相同的名称。
我需要将多个文件夹中的文件复制到一个文件夹中,但存在多个重复项,我需要保留这些文件。有没有一种方法可以将具有重复文件名的文件复制到一个目录中,并通过在 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 个文件具有相同的名称。