Search code examples
rfile-manipulation

Copy multiple files from multiple folders to a single folder using R


Hey I want to ask how to copy multiple files from multiple folders to a single folders using R language

Assuming there are three folders:

  1. desktop/folder_A/task/sub_task/
  2. desktop/folder_B/task/sub_task/
  3. desktop/folder_C/task/sub_task/

In each of the sub_task folder, there are multiple files. I want to copy all the files in the sub_task folders and paste them in a new folder (let's name this new folder as "all_sub_task") on desktop. Can anyone show me how to do it in R using the loop or apply function? Thanks in advance.


Solution

  • Here is an R solution.

    # Manually enter the directories for the sub tasks
    my_dirs <- c("desktop/folder_A/task/sub_task/", 
                 "desktop/folder_B/task/sub_task/",
                 "desktop/folder_C/task/sub_task/")
    
    # Alternatively, if you want to programmatically find each of the sub_task dirs
    my_dirs <- list.files("desktop", pattern = "sub_task", recursive = TRUE, include.dirs = TRUE)
    
    # Grab all files from the directories using list.files in sapply
    files <- sapply(my_dirs, list.files, full.names = TRUE)
    
    # Your output directory to copy files to
    new_dir <- "all_sub_task"
    # Make sure the directory exists
    dir.create(new_dir, recursive = TRUE)
    
    # Copy the files
    for(file in files) {
      # See ?file.copy for more options
      file.copy(file, new_dir)
    }
    

    Edited to programmatically list sub_task directories.