дубликат папки и переименование файловой структуры - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь автоматизировать процесс дублирования папок на диске 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. В идеале я бы хотел, чтобы он создавался внутри папки «Клиенты». Как бы я добавил это к сценарию?

Оцените помощь.

Приветствия

1 Ответ

0 голосов
/ 26 января 2020

Пожалуйста, смотрите прикрепленную ссылку, надеюсь, это то, что вы ищете

https://yagisanatode.com/2018/07/08/google-apps-script-how-to-create-folders-in-directories-with-driveapp/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...