DriveApp.searchFiles - использовать любую подстроку имени файла для поиска файлов - PullRequest
0 голосов
/ 24 января 2019

Я пишу код приложения для поиска файлов на моем диске. Ниже приведены файлы на моем диске Google.

t_abcd.txt

p_abcd_0211.txt

j_abcd.docx

bwt_abcd.txt

и т.д.

Обратите внимание, что _abcd является общим для всего вышеперечисленного и изменяется только префикс и суффикс. Я хочу, чтобы поиск обнаружил все перечисленные выше файлы, когда пользователь ищет «abcd» или его подстроку.

В документации для DriveApp.searchFiles (params) Я не смог нигде найти регулярные выражения или подстроки, используемые для поиска файлов.

Одним из решений было бы получить все файлы с диска и написать отдельную логику для определения необходимых файлов.

Есть ли более простой способ сделать это? Пожалуйста, сообщите.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

На данный момент запрос ведет себя:

  • может искать abcd, если файл начинается с него abcd_slide, abcd_sheets, abcd_doc.

enter image description here

  • может искать abcd, если это другое слово.

enter image description here

  • Невозможно найти это подтекст doc_abcd, sheet_abcd, slide_abcd.

Попробуйте создать ошибку , чтобы уточнить ее функцию.

0 голосов
/ 25 января 2019

Как насчет этого обходного пути? К сожалению, на данном этапе, я думаю, что нет методов для прямого получения файлов с такими именами файлов. Так, например, как насчет следующего обходного пути?

Документ поиска файлов говорит

fullText: полный текст файла, включая заголовок, описание, содержимое и индексируемый текст.

Запрос, который используется в качестве временного решения: fullText contains '_abcd'. Я думаю, что когда это используется в качестве поискового запроса, стоимость процесса ниже, чем при полном поиске. Пример скрипта выглядит следующим образом. Я думаю, что есть несколько обходных путей для вашей ситуации. Поэтому, пожалуйста, подумайте об этом как об одном из них.

Пример сценария:

var q = "fullText contains '_abcd'";
var files = DriveApp.searchFiles(q);
while (files.hasNext()) {
  var file = files.next();
  var filename = file.getName();
  if (filename.indexOf("_abcd") > -1) {
    Logger.log(filename)
  }
}

Справка:

Если это не то, что вы хотите, я прошу прощения.

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