Since I am creating a new folder I am not sure how I can invoke its script. I was thinking of assigning this new folder a very unique name and called by its name, but then I have an issue with ".setOwner".
This is the script that I am using:
function setUpTrigger(){
ScriptApp.newTrigger(makeCopy)
.forForm(('XXX'))
.onFormSubmit()
.create()
}
function makeCopy() {
var sourceFolder = "YYY";
let spreadsheet = SpreadsheetApp.openById('ZZZ').getActiveSheet();
let targetFolder = spreadsheet.getSheetValues(spreadsheet.getLastRow(),spreadsheet.getLastColumn(),1,1);
//add line with dynamic id as per number of copies required
var source = DriveApp.getFolderById(sourceFolder);
var dest=DriveApp.getFolderById(targetFolder);
var target = dest.createFolder(source.getName());
copyFolder(source, target);
}
function copyFolder(source, target) {
var folders = source.getFolders();
var files = source.getFiles();
while(files.hasNext()) {
var file = files.next();
file.makeCopy(file.getName(), target);
}
while(folders.hasNext()) {
var subFolder = folders.next();
var folderName = subFolder.getName();
var targetFolder = target.createFolder(folderName);
copyFolder(subFolder, targetFolder);
}
}