Google脚本DocsList服务查询字符串不起作用

时间:2012-06-11 11:19:09

标签: google-apps-script

我正在编写一个小脚本来自动组织一些自动生成的电子表格。目标是根据电子表格的名称将电子表格存档在目录中(所有电子表格都以相同的名称开头,但以我用来组织它们的模式结束)。我遇到的问题是功能:

lstFile = DocsList.find('type:spreadsheet title:"PROG_GRAL_CENTRE"');

该函数没有the docs中指定的查询选项,但我在另一个脚本上使用它并且工作正常!我也尝试过只放:

lstFile = DocsList.find('PROG_GRAL_CENTRE');

应该找到200个文件,但没有找到!实际上,如果我在我的Google云端硬盘的搜索框中键入PROG_GRAL_CENTRE,则会找到所有文档,因此我不知道我的搜索过滤器出了什么问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

方法find(查询)在文件内容中查找字符串,而不仅仅是文件名...所以即使它正常工作(意思是没有你提到的问题)我不确定它是不是一个好的解决方案对于您的用例,因为存在某些文件名可能在另一个具有其他名称的文档中找到的风险(例如作为参考...)。

为什么不尝试获取数组中的所有文件名并搜索到此数组呢? 这可以非常轻松地完成,并且会为您的问题带来优雅的解决方案吗?

我现在正在处理这种类型的脚本;-)这里是获取我的文件的部分(如果你感兴趣,只是一个例子):

var doclist=DocsList.getRootFolder().getFilesByType("document",0,2000);
var names = new Array();
  for (nn=0;nn<doclist.length;++nn){
    if(doclist[nn].getName().match("IMPRESSION_")=="IMPRESSION_"){
  names.push([doclist[nn].getName(),doclist[nn].getId()]);
  }
  }

之后我按照我想要的方式对数组进行排序,并在列表UI中显示结果。