Google Apps Script возвращает все файлы на Диске, а не файлы в папке - PullRequest
2 голосов
/ 04 октября 2019

У меня есть папка на Google Диске, где есть несколько файлов. Я хочу получить всю эту информацию о файле, и это все, что я хочу. В других папках много других файлов, но они мне не нужны. Тем не менее, мой следующий код показывает имена всех файлов. Как я могу ограничить результат только файлами в указанной папке?

//Folder ID
var myFolderId = "XXXXXXXXXXXXXXXXXXXXXXXXX";
var files = DriveApp.getFolderById(myFolderId).getFiles();
while(files.hasNext())
{
    var file = files.next();
    Logger.log(file.getName());
}

На данный момент в этой папке только 4 файла, но в журнале отображаются все имена файлов на моем Google Диске. Я не знаю, что я делаю неправильно, потому что я указываю папку с идентификатором. Почему он возвращает каждый файл на Google Диске?

1 Ответ

2 голосов
/ 04 октября 2019

Ответ:

Ваш код уже отлично работает!

Дополнительная информация:

Скрипт Google Apps не разрешает запуск глобального кодапоскольку конкретные функции необходимо объявлять и запускать, по крайней мере, не в том же виде, что и в локально выполняемом коде. Глобальные переменные являются статическими и не могут быть изменены во время выполнения.

Что вы можете сделать:

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

function functionName(){
  var myFolderId = "XXXXXXXXXXXXXXXXXXXXXXXXX";
  var files = DriveApp.getFolderById(myFolderId).getFiles();
  while(files.hasNext())
  { 
    var file = files.next();
    Logger.log(file.getName());
  }
}

Как примечание: если вы действительно хотите использовать глобальную область (или, по крайней мере, использовать ее эмуляцию), PropertiesService доступен для вас, хотя вам все равно придется установить их в функцию и запустить функцию для их получения:

function setVars(){
  PropertiesService.getScriptProperties().setProperty('myFolderId', 'XXXXXXXXXXXXXXXXXXXXXXXXX');
}
function listFiles(){
 var files = DriveApp.getFolderById(PropertiesService.getScriptProperties().getProperty('myFolderId')).getFiles();
 //continue this code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...