Я пытаюсь переименовать ряд файлов и папок с новым именем.
Пример старого имени: corrected_original_wh_ah108090.pdf
Пример нового имени: corrected_original_gsmp01358_108090.pdf
Пример старого пути: Data/Test2/ARGOS/wh_ah108090/crawl/corrected_original_wh_ah108090.pdf
Пример нового пути: Data/Test2/ARGOS/gsmp01358_108090/crawl/corrected_original_gsmp01358_108090.pdf
Пример метаданных:
old new
wh_ah108090 gsmp01358_108090
wh_ah108091 gsmp01359_108091
wh_ah108092 gsmp01360_108092
wh_ah108093 gsmp01361_108093
wh_ah108096 gsmp01362_108096
wh_ah108102 gsmp01363_108102
wh_ah108106 gsmp01364_108106
Код:
# Read metadata for ID's #
meta <- read.csv('Metadata.csv')
# list all file paths
pathLs <- list.files('Data/Test2/', recursive = TRUE, full.names = TRUE)
# select only files with old format on the list (for full dataset where some files already have new name)
tbl<- pathLs [!grepl("gsmp", pathLs )]
# select only files with old format on metadata
metadata<- meta[!meta$old =="",]
# function to change old names for new
fileList <- apply(metadata,1,
function(x) {
fnam <- x['old']
fnam <- as.character(unlist(fnam))
newnam <- gsub(fnam, as.character(unlist(x['new'])), tbl[grepl(fnam, tbl)])
return(newnam)})
# Create dataframe with old and new names
to <- as.character(unlist(fileList))
from <- tbl
# Use rename
file.rename(from, to)
По некоторым причинам это переименование файла не работает. Это потому, что я не могу переименовывать файлы и каталоги в пути одновременно?