在R中将文件夹从一个目录复制到另一个目录
Posted
技术标签:
【中文标题】在R中将文件夹从一个目录复制到另一个目录【英文标题】:Copy folders from one directory to another in R 【发布时间】:2015-10-17 18:08:15 【问题描述】:我有两个文件夹(比如“A”、“B”),它们位于一个文件夹中(比如“输入”)。我想将“A”和“B”复制到另一个文件夹(比如“输出”)。我可以在 R 中执行此操作吗?
【问题讨论】:
看看?file.copy
那是针对个别文件的权利。我想一次复制两个文件夹。
From in file.copy 获取文件向量,因此您可以一次复制两个文件夹。
我可以复制文件夹中的文件,但不能复制文件夹
【参考方案1】:
将当前目录文件复制到新目录
currentfiles
是您要复制的文件列表
newlocation
是您要复制到的目录
如果您没有列出当前文件,则需要遍历您的工作目录
file.copy(from=currentfiles, to=newlocation,
overwrite = TRUE, recursive = FALSE,
copy.mode = TRUE)
这是为了删除你的旧文件
file.remove(currentfiles)
【讨论】:
我可以复制文件夹中的文件,但不能复制文件夹。我删除了代码的递归部分。 根据 ?file.copy 文档,参数overwrite
是合乎逻辑的。更改为 TRUE
或 FALSE
。
由于 OP 没有反应我编辑了帖子,我已将覆盖设置为 TRUE
,这意味着此操作可能具有破坏性,请谨慎使用或设置为 FALSE
【参考方案2】:
我迟到了。这是我完成任务的简单方法。 在 R 中,
current_folder <- "C:/Users/Bhabani2077/Desktop/Current"
new_folder <- "C:/Users/Bhabani2077/Desktop/Ins"
list_of_files <- list.files(current_folder, ".py$")
# ".py$" is the type of file you want to copy. Remove if copying all types of files.
file.copy(file.path(current_folder,list_of_files), new_folder)
【讨论】:
list_of_files
创建中的当前文件夹名称错误
对不起。我的错。现在修正了错字。【参考方案3】:
我看到的所有关于这个问题的解决方案似乎都暗示了基于 Unix 的操作系统(Mac 和 Linux)。我认为响应对 OP 不起作用的原因是 OP 可能在 Windows 上。
在 Windows 中,文件的定义就是文件,而 Unix 将文件定义为文件或目录。我相信这可能是 file.copy()
不起作用的原因,基于我对“文件操作”R 文档的理解 - 输入到 file.copy()
的“来自”字段的参数必须是文件(而不是目录),但也可以是“to”字段的文件或目录。
【讨论】:
【参考方案4】:fs 包提供了一种替代解决方案,可以准确回答原始问题
library(fs)
我已经使用工作目录中建议的结构创建了“输入”文件夹
fs::dir_tree()
#> .
#> +-- copy_folder.R
#> +-- copy_folder.Rproj
#> \-- input
#> +-- A
#> | +-- C
#> | \-- exampleA.txt
#> +-- B
#> | \-- exampleB.txt
#> \-- D
fs::dir_copy("input/A", "output/A")
fs::dir_copy("input/B", "output/B")
fs::dir_tree()
#> .
#> +-- copy_folder.R
#> +-- copy_folder.Rproj
#> +-- input
#> | +-- A
#> | | +-- C
#> | | \-- exampleA.txt
#> | +-- B
#> | | \-- exampleB.txt
#> | \-- D
#> \-- output
#> +-- A
#> | +-- C
#> | \-- exampleA.txt
#> \-- B
#> \-- exampleB.txt
请注意,我们在一般情况下工作,即“输入”文件夹包含文件夹“A”和“B”之外的其他文件夹和文件。
如果“input”文件夹只包含文件夹“A”和“B”,一行代码就足够了:
fs::dir_copy("input", "output")
由reprex package (v2.0.0) 于 2021-07-03 创建
【讨论】:
以上是关于在R中将文件夹从一个目录复制到另一个目录的主要内容,如果未能解决你的问题,请参考以下文章
如何在PHP中将所有文件和文件夹从一个目录移动到另一个目录?