在特定文件夹中搜索Google云端硬盘

时间:2012-09-03 18:04:47

标签: google-drive-api

我正在尝试将Google云端硬盘用作许多不同类型文档的存储库。我将这些文件安排在几个不同的文件夹中。

当我执行搜索时,无论我目前是否在特定文件夹中,它似乎都会在我的整个Google云端硬盘帐户中搜索匹配的结果。

这给我带来了一个问题,因为我希望能够在给定的文档分组中优化我的搜索。

例如,如果我要搜索与我的工作相关的文档,我不希望在我的搜索中显示的文档是个人的,或者在我的个人目录中。

有没有办法优化我的搜索只显示指定文件夹中的文档及其子文件夹?我知道我可以根据文件类型和所有权来优化搜索,但这对我不起作用。

提前致谢。

6 个答案:

答案 0 :(得分:4)

使用Google Drive SDK,您可以对<folder_id> in parents执行搜索查询。

答案 1 :(得分:0)

据我所知,你必须为每个子文件夹执行此操作,但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('---');
}
// -----------------

答案 2 :(得分:0)

我使用 description 字段找到了一种解决方法。

在我的特定情况下,我想要搜索的文件夹中创建的所有文件都是由我自己的脚本以编程方式创建的,但编写脚本以便(重新)将描述字段定义到特定的所有文件中非常简单使用.setDescription(DESCRIPTION)的文件夹。一旦完成......

好消息是google驱动器中的标准搜索会根据描述字段给出结果,包括在搜索字段中设置的值(以及要在这些文件中找到的任何数据),您将获得结果需要。

当然你需要划掉描述字段(或者至少过度拥挤它; - )

因为,我想你们所有人,我还在等待标准serch字段中的folder关键字。

答案 3 :(得分:0)

我包含的代码允许我搜索特定文件夹中的文件正文。我正在使用它来搜索扫描的文档,并根据我指定的搜索条件将文件移动到另一个文件夹。

关于这一点的好处是它将搜索文档正文并返回符合搜索条件的所有文档。如您所见,我还可以指定日期范围,您可以使用其他运算符来定义搜索。 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());
  }

 }

答案 4 :(得分:0)

我在此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扩展程序。

答案 5 :(得分:0)

还有另一种解决方法,不需要任何第三方应用或扩展程序。

  • 删除您的文件夹(您想在其中搜索内容)
  • 使用搜索是:已删除过滤器。例如:is:trashed query_string
  • 恢复您的文件夹