1

我正在请求在团队云端硬盘中查找属于某个客户的所有文件。

根据此处的答案,这是代码:

function listFiles (){
  var client = 'client'
  var teamDriveId = 'id';
  var pageToken;
  var folders = Drive.Files.list({  
    corpora: 'teamDrive',
    supportsTeamDrives: true,
    teamDriveId: teamDriveId,
    includeTeamDriveItems: true,
    q: "title = 'data'"
  });
  if (folders.items.length !== 1) {
    Logger.log('There is a problem.');
    return;
  }
  var query = "name contains '" + client + // this client only
    "' and trashed = false and " + // not in trash 
    "not mimeType = 'application/vnd.google-apps.folder'"; // no folders
  Logger.log(query)
  var files, pageToken;
  do {
    files = Drive.Files.list({
      q: query,
      maxResults: 100,
      pageToken: pageToken,
      // required for team drive queries
      corpora: 'teamDrive',
      supportsTeamDrives: true,
      teamDriveId: teamDriveId,
      includeTeamDriveItems: true
    });
    if (files.items && files.items.length > 0) {
      for (var i = 0; i < files.items.length; i++) {
        var file = files.items[i];
        Logger.log('%s (ID: %s) (Modified: %s)', file.title, file.id, file.modifiedDate);
        }        
      }
    } else {
      Logger.log('No files found.');
    }
    pageToken = files.nextPageToken;
  } while (pageToken);
}

如果我不包括"name contains '" + client'"查询的部分,它工作正常。如果我这样做,它会返回一个错误,仅说明:“无效查询”。

查看文档,我不明白我的语法与那里指定的语法有何不同。

我已经尝试了这些方面的多种变体:

  • "name contains 'client' and trashed = false and not mimeType = 'application/vnd.google-apps.folder'"
  • "trashed = false and not mimeType = 'application/vnd.google-apps.folder' and name contains 'client'"

有什么想法可以解决这个问题吗?

4

0 回答 0