Я пытаюсь автоматизировать процесс дублирования папок на диске Google. Как часть процесса, я хочу переименовать файлы и папки для каждого нового клиента.
Я адаптировал некоторый код, найденный ранее. Раньше он работал хорошо, но по какой-то причине теперь любые папки / файлы, которые находятся на глубине более 1 уровня в папке root, возвращаются «undefined» в разделе замены команды.
function duplicatefolder(){
var newclientname = Browser.inputBox('Client Name')
var sourceFolder = "1. Master Client Folder";
var targetFolder = newclientname;
var source = DriveApp.getFoldersByName(sourceFolder);
var target = DriveApp.createFolder(targetFolder);
if (source.hasNext()) {
copyFolder(source.next(), target, newclientname);
}
}
function copyFolder(source, target,client) {
var folders = source.getFolders();
var files = source.getFiles();
while(files.hasNext()) {
var file = files.next();
var newname= file.getName().toString().replace("Master",client)
file.makeCopy(newname, target);
}
while(folders.hasNext()) {
var subFolder = folders.next();
var folderName = subFolder.getName();
var newFolderName = subFolder.getName().replace("Master",client)
var targetFolder = target.createFolder(newFolderName);
copyFolder(subFolder, targetFolder);
}
}
Сценарий также создает папку в каталоге root на диске Google. В идеале я бы хотел, чтобы он создавался внутри папки «Клиенты». Как бы я добавил это к сценарию?
Оцените помощь.
Приветствия