如何按名称搜索特定文件夹内的文件 Google Docs API

Abs*_*ity 3 google-api node.js google-drive-api

我正在使用 google docs api 的 V3 并试图弄清楚如何按名称在指定文件夹内搜索文件。

这就是我目前所拥有的:

function listFiles(auth) {
  const drive = google.drive({version: 'v3', auth});
  drive.files.list({
    q: 'name = "NAMEHERE" and parents in "FOLDERID"',
    pageSize: 10,
    fields: 'nextPageToken, files(id, name, webViewLink)',
  }, (err, res) => {
    if (err) return console.log('The API returned an error: ' + err);
    const files = res.data.files;
    if (files.length) {
      console.log('Files:');
      files.map((file) => {
        console.log(`${file.name} ${file.webViewLink}`);
      });
    } else {
      console.log('No files found.');
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

Tan*_*ike 5

我相信你的目标如下。

  • 您想要使用文件名搜索 Google 云端硬盘上特定文件夹中的文件。
  • 您希望使用 googleapis 和 Node.js 来实现此目的。
  • 在您的脚本中,auth可用于使用 Drive API 中的 files.list 方法。

为此,这个答案怎么样?

我可以确认您正在使用 Drive API v3。那么下面的修改如何呢?

从:

q: 'name = "NAMEHERE" and parents in "FOLDERID"',
Run Code Online (Sandbox Code Playgroud)

到:

q: 'name = "NAMEHERE" and "FOLDERID" in parents',
Run Code Online (Sandbox Code Playgroud)

或者

q: "name = 'NAMEHERE' and 'FOLDERID' in parents",
Run Code Online (Sandbox Code Playgroud)
  • 请使用in parents类似'FOLDERID' in parents.
    • 在上述修改后的查询中,将检索NAMEHERE文件夹中文件名为 的文件。FOLDERID在这种情况下,当文件夹中存在多个具有相同文件名的文件时,将检索这些文件。
  • 当上述修改反映到您的脚本中时listFiles,我可以确认该脚本有效。在这种情况下,假设可以完成授权。如果您想了解授权脚本,请查看Node.js 快速入门

参考: