Сценарий Google Apps: клонирование PDF-файлов в новую папку

#google-apps-script

#google-apps-script

Вопрос:

Во второй половине дня я отчаянно пытаюсь заставить скрипт работать, и, насколько я вижу, он должен работать идеально. Я хочу получить список PDF-файлов из исходной папки и скопировать указанные PDF-файлы во вторичную папку. Вот сценарий:

   var sourceFolder = DriveApp.getFolderById("source");
  var targetFolder = DriveApp.getFolderById("target")
  var files = sourceFolder.getFilesByType(MimeType.PDF);
  while (files.hasNext()) {
    var file = files.next();
    file.makeCopy(targetFolder);  
  }
 

Я что-то упустил? Нужны ли мне разрешения для использования скриптов Google на диске? Я очень смущен.
Любая помощь будет оценена.

Комментарии:

1. Вы передаете id здесь или name : DriveApp.getFolderById("source") ? Потому что вам нужно передать идентификатор папок, а не их имя. Кроме того, вы видите какую-либо ошибку? и если да, что это такое?

2. Я могу подтвердить, что вы передаете не идентификатор папок, а их имена. Ваш код работает для меня.

Ответ №1:

Согласно Мариосу, упомянутому в комментарии, ваш код действительно работает. Просто убедитесь, что скопировали правильный идентификатор папки.

Ваш код должен выглядеть как приведенный ниже код при включении идентификаторов папок

 function myFunction() {
  var sourceFolder = DriveApp.getFolderById("0B55C21aJsSBlfk9FTjRqOG8tb3hjR1N4MTU1YjVPNU4weGVhSldfU3F4OXladVVNMF9Ccms");
  var targetFolder = DriveApp.getFolderById("1n9PJ_FFlJvlCRdWxHHJiTn4RF6-a1ypE");
  var files = sourceFolder.getFilesByType(MimeType.PDF);
  while (files.hasNext()) {
    var file = files.next();
    file.makeCopy(targetFolder);
  }
}
 

пример вывода

Пожалуйста, ознакомьтесь с этим, чтобы узнать, как вы получаете идентификатор папки.

Обратите внимание, что когда вы видите ?key=value формат, не включайте его и что-либо после этого. Они называются параметрами URL и не являются частью идентификатора папки