Поиск Google Диска в определенной папке

Я пытаюсь использовать Google Диск в качестве хранилища для многих разных типов документов. У меня эти документы расположены в нескольких папках.

Когда я выполняю поиск, он, кажется, ищет мою учетную запись Google Диска для сопоставления результатов, независимо от того, что я сейчас в определенной папке.

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

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

Есть ли способ уточнить мой поиск, чтобы показывать документы только в указанной папке и вложенных папках? Я знаю, что я могу уточнить поиск по типу файла и собственности, но это не работает для меня.

Спасибо заранее.

Ответ 2

Насколько я знаю, вам нужно будет сделать это для каждой вложенной папки, но API (и мое приложение) будет искать по папке.

Я написал приложение, которое использует API для поиска по папке. Это немного медленно, поэтому будьте терпеливы, когда он загружается.

https://script.google.com/macros/s/AKfycby6G32K-vKCiLmoKvMtG64cYPHEREEx1PY5IoYrEYaR6WAfbXs/exec

// -----------------
var sr = DocsList.getFolder("temp_scripts").find("var");
var i = 0;
for(i=0;i<sr.length;i++)
{
  var r = sr[i];
  Logger.log('name='+r.getName());
  Logger.log('parent=' +r.getParents()[0].getName() );
  Logger.log('---');
}
// -----------------

Ответ 3

Я нашел своеобразное обходное решение, используя поле description.

В моем конкретном случае все файлы, созданные в папке, которую я хочу выполнить, создаются программно с помощью моего собственного script, но довольно просто написать script to (re) определение поля описания во все файлов в определенной папке с помощью .setDescription(DESCRIPTION). Как только это будет сделано...

Хорошей новостью является то, что стандартный поиск в драйвере Google дает результаты на основе поля описания, включая значение, установленное на нем в поле поиска (плюс любые данные, которые вы хотите найти в этих файлах). Вы получите результаты, которые вы необходимо.

Конечно, вам нужно скарифицировать поле описания (или, по крайней мере, перегружать его;)

Как, я думаю, все вы, я все еще жду ключевое слово папки в стандартном поле.

Ответ 4

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

Самое замечательное в том, что он будет искать тело документа и возвращать все документы, соответствующие вашим критериям поиска. Как вы можете видеть, я также могу указать диапазон дат, и вы можете использовать другие операторы для определения вашего поиска. https://developers.google.com/drive/web/search-parameters.

Это была отличная находка для меня, и я надеюсь, что это может помочь некоторым другим.

function searchFolder(){
var parent = DriveApp.getFolderById(‘*******************’); // folder Id
var search = 'modifiedDate >"2014-08-01" and modifiedDate  < "2014-12-31" and fullText contains "PUT   SEARCH TEXT HERE"';
var specificFolder = parent.searchFiles(search);

while (specificFolder.hasNext()) {
  var file = specificFolder.next();
  Logger.log(file.getName());
  Logger.log(file.getId());
  }

 }

Ответ 5

Я реализовал эту функцию в этом расширении Chrome. https://chrome.google.com/webstore/detail/advanced-drive-search/chomjcpadndbjgkanbaakmjehdoighab

Вы можете проверить код здесь https://github.com/kissrobber/advanced_google_drive_search_chrome_extension

Что это значит,

  • получить все папки
  • создайте запрос с помощью folder_id и папки folder_ids. Как это (<folder_id> in parents or <folder_id> in parents or ....)

Если у вас есть проблемы с производительностью, попробуйте расширение Chrome.

Ответ 6

Существует другое обходное решение, для которого НЕ требуется стороннее приложение или расширение.

  • Удалите папку (в которой вы хотите что-то найти)
  • Поиск с фильтром - это: trashed. Например: is:trashed query_string
  • Восстановить вашу папку назад