将文件从嵌套文件夹复制到新的嵌套文件夹

问题描述 投票:0回答:1

我正在尝试将大量文件从一个文件夹复制到另一个文件夹。我们需要重组文件夹,因此需要将旧文件夹路径转换为新文件夹路径。旧的文件夹结构也被嵌套。

当前我所拥有的代码没有引发任何错误,但是在对所有文件执行file.copy时返回false。

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)
r copy directory-structure
1个回答
0
投票

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)
© www.soinside.com 2019 - 2024. All rights reserved.