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