我需要在Google云端硬盘中搜索各种看起来包含电子邮件地址的文件类型(txt,csv,xls)。
因此,我尝试使用以下搜索文件查询的变体形式:
files = DriveApp.searchFiles
(
' ('+
' (mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") OR' +
' (mimeType = "text/xml") OR' +
' (mimeType = "text/csv") OR' +
' (mimeType = "text/plain") OR' +
' (mimeType = "application/octet-stream")' +
' )' +
' and' +
' ('+
' (fullText contains \'"@"\') '+
' )'
);
但是,搜索的'fullText'部分似乎是从用户/文件所有者字段中选取@,因为它只是返回每个具有指定Mime类型的文件,无论实际文件内容是否包含@符号或不是。
如果我将查询的全文部分更改为“(非全文包含\'“ my.email@domain.com” \')“,则它包含我未拥有/未修改的预期类型的文件-我只能看到域中其他用户拥有的文件。
所以我的问题是,有没有一种方法可以将用户名字段排除在文件搜索的fullText部分之外,以便仅在实际文件内容中搜索@符号?还是我可以在Google云端硬盘中搜索看起来包含电子邮件地址的文件内容的另一种方式。
答案 0 :(得分:0)
在the documentation中查看了searchFiles
的参数后,我注意到它们并没有发出单独专门查看内容的信号,fullText
似乎是唯一的方法处理内容,但包括所有其他详细信息,如in this documentation
一个可能的解决方法是分别评估文件,但是我怀疑这是扩展名所做的事情,因为它可以解释为什么花这么长时间。或者,您可以尝试搜索' @ '
,如果存在空格,则该地址不能是电子邮件地址,而将忽略作者/编辑者。