2017-02-09 5 views
0

У меня есть скрипт, который должен искать все файлы в Google Диске. Я реализовал сценарий на одной из сайтов Google. Скрипт работает только для файлов, находящихся в корневой папке, но не работает для файлов, находящихся в подпапках. Любая помощь оценивается. СпасибоСкрипт для поиска на Google Диске

Вот текущий сценарий:

function doGet(e) { 
    var results = DriveApp.getFolderById('yourGoogleDriveId').searchFiles('fullText contains "' + e.parameter.q + '"'); 
    var output = HtmlService.createHtmlOutput('Results: <br /><br /><ul>'); 
    while (results.hasNext()) { 
    var file = results.next(); 
    output.append('<li><a href="' + file.getUrl() + '">' + file.getName() + '</a></li>'); 
    } 
    output.append('</ul>'); 
    return output; 
} 
+1

Вы пытались запустить его непосредственно без «getFolderById», в противном случае он ищет файлы под этой конкретной папкой? т. е. var results = DriveApp.searchFiles ('fullText содержит' '+ e.parameter.q +' "'); –

+0

Да, хотя я знал, что это не сработает, но я попробовал ваше предложение. Он не знает, где искать файлы без идентификатора папки Диска. – magichand

+0

Также все файлы находятся в подпапках корневой папки, и я ввел идентификатор корневой папки # в скрипт. Он должен искать все файлы/папки под корнем. – magichand

ответ

2

Как уже упоминалось @Cesar, DriveApp.getFolderById().searchFiles() должен быть DriveApp.searchFiles(). Два класса DriveApp и Folder оба имеют метод searchFiles(), но только первый ищет рекурсивно. Прочитайте документацию.

Я скопировал код и протестировали его (с modifedDate ускорить), и это пошло отлично.

+0

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

+0

Затем, согласно документам API, у вас нет встроенной функции, доступной для подпапок. –