将文件从文件夹和子文件夹复制到另一个文件夹并保存文件夹的结构

时间:2019-05-30 11:57:23

标签: r file

在某些情况下,我已经创建了一个文件列表,我只想将该列表中的文件复制到新文件夹和子文件夹中,例如原始文件夹中。 文件夹的结构是年/月/日。

这是我尝试的代码:

from.dir <- "J:/Radar_data/Beit_Dagan/RAW/2018"
## I want only the files from the night
to.dir   <- "J:/Radar_data/Beit_Dagan/night"
files    <- list.files(path = from.dir, full.names = TRUE, recursive = 
TRUE)
## night_files is a vector I created with the files I need - only during the night
for (f in night_files) file.copy(from = f, to = to.dir)

但是我将所有文件放在一个文件夹中

我的列表的一部分看起来像这样:

[1] "J:/Radar_data/Beit_Dagan/H5/2018/03/10/TLV180310142554.h5"
[2] "J:/Radar_data/Beit_Dagan/H5/2018/03/10/TLV180310142749.h5"
[3] "J:/Radar_data/Beit_Dagan/H5/2018/03/10/TLV180310143054.h5"

复制时是否可以保留文件夹和子文件夹的结构?
我想在新的“夜间”文件夹中获得相同的年/月/日结构

2 个答案:

答案 0 :(得分:1)

您只需要:

file.copy(from = from.dir, to = to.dir,recursive=T)

答案 1 :(得分:1)

您需要在复制调用中使用标志recursive = T,因此您实际上并不需要在目录中循环。

from = paste0(getwd(),"/output/","output_1") to = paste0(getwd(),"/output/","output_1_copy") file.copy(from, to, recursive = T)

请注意,您需要在呼叫之前创建/output_1_copy目录。您可以手动完成,也可以使用dir.create(...)