首页 > 解决方案 > 根据 Google Drive API v3 和 .NET 中的属性键列出项目

问题描述

我成功解决了我的问题:列出在 Google Drive API v3 和 .NET 中没有自定义属性的文件夹

现在,我还有其他挑战。

我调用了自定义属性imdb,它有任何值(非空)。

我试图弄清楚如何检索那些imdb在列表中有属性的项目(不管value有什么)。我不想获得整个完整列表并一一检查Properties字典(我有 300-320 个项目并且正在增长)。

request.Q = $"mimeType='application/vnd.google-apps.folder' and properties has {{ key='imdb' and value='/*WHAT SHOULD DO ?*/' }}"; 

似乎只有同时提供组件key和,查询才有效value,否则我也会得到 400

我也试过:

request.Q = $"mimeType='application/vnd.google-apps.folder' and properties has {{ key='imdb' and value!='' }}";

但它给了我 400(错误请求),似乎value!=''无效

request对象是:

var request = dataService.Files.List();

...
dataService = new DriveService(new BaseClientService.Initializer
  {
    HttpClientInitializer = credential,
    ApplicationName = "XXXX"
});

有什么建议吗?

标签: google-drive-api

解决方案


就目前而言,如果不指定确切值,则无法查询属性

Google正在调查此问题。因此,您不能使用not,contains或其他对您的查询有帮助的运算符。你所能做的(不是特别有效)就是

  • 列出所有指定的fields文件files/properties
  • 手动过滤列表以获得files/properties不为空的结果
  • 将过滤后的列表与结果进行比较 request.Q = $"'{id}' in parents and (properties has {{ key='xxx' and value='' }} or not properties has {{ key='xxx' and value='' }})";

我建议您对现有问题发表评论,以提醒 Google 尚未实施。


推荐阅读