Копировать файлы из папок и подпапок в другую папку и сохранять структуру папок - PullRequest
1 голос
/ 30 мая 2019

Я создал список файлов по некоторым условиям и хочу скопировать только файлы из этого списка в новую папку и подпапки, как в исходной папке. Структура папок год / месяц / день.

Это код, который я пробовал:

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 ]

1 голос
/ 30 мая 2019

Вам нужно использовать флаг 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(...).

1 голос
/ 30 мая 2019

Вам просто нужно:

file.copy(from = from.dir, to = to.dir,recursive=T)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...