首页 > 解决方案 > 将文件从嵌套文件夹复制到新的嵌套文件夹

问题描述

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

目前我的代码没有抛出任何错误,但在执行所有文件的 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)

标签: rcopydirectory-structure

解决方案


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)

推荐阅读