13

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

当我执行搜索时,无论我当前是否位于特定文件夹中,它似乎都会搜索我的整个 Google Drive 帐户以获取匹配的结果。

这给我带来了一个问题,因为我希望能够将我的搜索细化到给定的文档分组内。

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

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

提前致谢。

4

6 回答 6

4

使用Google Drive SDK,您可以对<folder_id> in parents.

于 2012-09-03T22:26:50.970 回答
1

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

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

 }
于 2014-12-15T21:23:57.493 回答
0

我找到了一种使用描述字段的解决方法。

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

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

当然,您需要删除描述字段(或者,至少,过度拥挤它;-)

因为,我想你们所有人,我仍在等待标准搜索字段中的文件夹关键字。

于 2014-03-19T11:57:30.687 回答
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 扩展程序。

于 2015-04-19T12:18:53.960 回答
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('---');
}
// -----------------
于 2014-01-28T13:08:51.167 回答
0

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

  • 删除您的文件夹(您想在其中搜索内容)
  • 使用is:trashed过滤器搜索。例如:is:trashed query_string
  • 恢复您的文件夹
于 2016-10-09T12:30:59.657 回答