Google Drive API:使用通配符按名称查找文件?

Pau*_*ulJ 4 google-drive-api

使用 Google Drive API v3 时,是否可以使用通配符或正则表达式按名称搜索文件?文档没有提及任何内容。

我正在尝试匹配名称具有以下格式的一组文件

backup_YYYY-MM-DD-XXXX_NameOfWebsite_xxxxxxxxxx.zip
Run Code Online (Sandbox Code Playgroud)

我想知道构建可能与之匹配的模式的最佳方法是什么。当然,我可以按照文档做一些类似的事情:

q="name contains 'backup' and name contains 'NameOfWebsite'"
Run Code Online (Sandbox Code Playgroud)

但是,如果我需要匹配不同的模式,或者文件名中包含超过 2 个不同字符串的内容("backup_""NameOfWebsite"),您可以很快看到以这种方式构造查询会是多么痛苦:

q="name contains 'string1' and name contains 'string2' and name contains...
Run Code Online (Sandbox Code Playgroud)

Raf*_*rmo 6

回答:

使用Drive.listaq 参数发出请求时,不能在文件名中间使用通配符。

更多信息:

name字段只需要三个运算符 - =,!=contains

  • =运营商是有规律的等价和这个你不能使用通配符。
  • name = 'backup*' 不会返回任何结果。
  • !=运营商不等价,而不是与此有关,但确实相反=
  • contains运营商。您可以使用通配符,但有限制:
  • name contains 'backup*'将返回文件名字符串开头的所有文件backup
  • name contains '*NameOfWebsite'将返回文件名以字符串开头的NameOfWebsite所有文件。文件名称backup0194364-NameOfWebsite.zip不会被退回,因为没有space字符串之前。

因此,要做到这一点,唯一的方法就是按照你已经开始意识到的方式去做;字符串链接:

name contains 'backup' and name contains 'NameOfWebsite' and name contains ...
Run Code Online (Sandbox Code Playgroud)

我知道这通常是个坏消息,但我希望这对您有所帮助!

参考: