r - 将文件从嵌套文件夹复制到新的嵌套文件夹
问题描述
我正在尝试将大量文件从一个文件夹复制到另一个文件夹。我们需要重组文件夹,因此需要将旧文件夹路径转换为新文件夹。旧的文件夹结构也是嵌套的。
目前我的代码没有抛出任何错误,但在执行所有文件的 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)
解决方案
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)
推荐阅读
- html - 没有重叠项目的flexbox列换行列表
- python - 使用 ctypes 检索窗口标题
- python - 我想导入 Dictionary 但有问题
- pandas - 我想创建一个新列'Assign'并分配值:前缀'Check'列值和后缀为'-SPLIT'到ITEM_TYPE。EX.'TRUE-AB-SPLIT'
- node.js - NodeJS 服务器:如何在 JSON POST 中保留 int 元组数据而不将 int 转换为科学计数法?
- c++ - 字符串类的比较函数未按预期工作
- java - 找到多个 Bean - 只需要一个
- ubuntu - 如何在 Odoo 13 中指定自定义插件目录?
- angular - 如何仅在单击确认模式按钮时更改复选框状态
- javascript - 无法读取 Firebase Cloud Function 中未定义的属性“ref”