2016-12-22 22 views
0

Мне нужно скопировать файлы из нескольких папок в одну папку, но есть несколько дубликатов, и мне нужно их сохранить. Есть ли способ скопировать файлы с повторяющимися именами файлов в один каталог и сохранить оба файла, получив дубликаты (имена), автоматически переименованные в 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) 
} 

ответ

2

Вы можете, вероятно, использовать file.rename вместо этого. Я считаю, что этот код должен работать, но не проверял его.

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

Второй аргумент file.rename вставляет новый путь к файлу с именем файла предварённое «file_», и счетчик. basename удаляет исходный путь к файлу и возвращает только имя файла. С добавлением счетчика вы можете быть уверены, что ни один из файлов не имеет то же имя.