Копировать файлы из вложенных папок в новые вложенные папки - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь скопировать большое количество файлов из одной папки в другую. Нам нужно реструктурировать папки, чтобы произошел перевод старого пути к новому. Старая структура папок также является вложенной.

В настоящее время мой код не выдает никаких ошибок, но возвращает false при выполнении file.copy для всех файлов.

ETA: Когда я копирую один файл, все работает.

allFilePaths <- list.files('./oldTopLevelFolder', recursive = TRUE)

testIds <- c(1:4)
otherTestIds <- c(5:8)

allNewFolders <- paste('newTopLevelFolder', testIds, 'aFolderName', otherTestIds, sep = '/')

lapply(allNewFolders, dir.create, recursive = TRUE)

file.copy(from=allFilePaths, to=allNewFolders, 
          copy.mode = TRUE)

1 Ответ

0 голосов
/ 06 февраля 2020

file.copy может копировать несколько файлов, но только в одну целевую папку, судя по всему.

Чтобы скопировать группу файлов в разные целевые папки, выполните следующее: где allOldFilePaths - это столбец, содержащий старый путь к файлу, где каждый файл существует в данный момент, а allNewFilePaths - это столбец, содержащий новый путь к папке для каждого файла.

# function to copy a single file
copySingleFile <- function(oldPath, newPath) {
  file.copy(from=oldPath, to=newPath, 
            copy.mode = TRUE)
}

# copy each file to its new folder path
mapply(copySingleFile, allFilePathsWithRoot, allNewFilePaths)
...