Login

Please fill in your details to login.





duplicate folder recursively

Use this script to copy a Google Drive folder recursively, create custom folder name with iterator. Noice.
function myFunction() {
  const source = DriveApp.getFolderById('folder_id');
  const name = "Folder"; // An iterator will be added to the end of the folder name
  const start = 2; // Iterator start value
  const parent = DriveApp.getFolderById(source.getParents().next().getId());
  const copies = 1;
  duplicate(source, name, parent, copies, start)
}

function duplicate(source, name, parent, copies, start) {
  var folderIds = [];
  for(var i=start;i<start+copies;i++){
    var suffix = i.toString().padStart(copies.toString().length,"0");
    var copyFolder = parent.createFolder(name+" "+suffix);
    Logger.log("Creating folder: '"+copyFolder.getName()+"'")
    folderIds.push(copyFolder.getId());
    copy(source,copyFolder);
  }
  folderIds.forEach(function(e){
    Logger.log(e)
  })
}

function copy(source,copyFolder){
  var files = source.getFiles();
  while (files.hasNext()){
    var file = files.next();
    var newFile = file.makeCopy(copyFolder);
    newFile.setName(file.getName());
  }
  var folders = source.getFolders();
  while (folders.hasNext()) {
    var folder = folders.next();
    var newFolder = copyFolder.createFolder(folder.getName());
    copy(folder, newFolder);
  }
}

Last modified: October 31st, 2023
The Computing Café works best in landscape mode.
Rotate your device.
Dismiss Warning