Найдите файл диска Google по имени и получите его идентификатор - PullRequest
1 голос
/ 02 августа 2020

У меня есть имя файла и указанный c идентификатор папки, в которой я буду хранить свой файл с его именем. Наконец, я хочу получить идентификатор файла, выполнив поиск по имени.

  var folder = DriveApp.getFolderById('0AIigAJ4047IdUk9PVA');
  var f_name = ref.rlink;
  var files = folder.getFiles();

Я пытался использовать while l oop, но не преуспел, вот мой l oop: -

while (files.hasNext()){
    if (files.getName === f_name)
    {
     var file = files.getId();
     break;
     }
  }
Logger.log(file)

что мне здесь не хватает?

1 Ответ

1 голос
/ 02 августа 2020

Когда ваш скрипт изменен, как насчет следующей модификации?

Точки модификации:

  • В данном случае files - FileIterator.
    • Нет files.getName. В этом случае он возвращает undefined.
    • file.getId() использовать нельзя.

Измененный скрипт:

var fileId = "";
while (files.hasNext()){
  var file = files.next();
  if (file.getName() === f_name) {
    fileId = file.getId();
    break;
  }
}
Logger.log(fileId)

Или, если вы хотите получить идентификатор файла с именем f_name в папке DriveApp.getFolderById('0AIigAJ4047IdUk9PVA'), я думаю, что вы также можете использовать следующий пример сценария.

var folder = DriveApp.getFolderById('0AIigAJ4047IdUk9PVA');
var f_name = ref.rlink;
var files = folder.getFilesByName(f_name);
var fileId = files.hasNext() ? files.next().getId() : "";
  • В этом случае, когда файл f_name существует в папке, fileId имеет значение идентификатора файла. Когда файл f_name НЕ существует в папке, fileId не имеет значения типа "".

Ссылки:

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