Google apps script 如何使用谷歌应用程序脚本搜索文件夹

Google apps script 如何使用谷歌应用程序脚本搜索文件夹,google-apps-script,google-drive-api,Google Apps Script,Google Drive Api,我犯了一个简单的错误,或者我们不能在DriveApp上使用.searchFiles方法搜索文件夹吗? 我有一个更复杂的搜索参数,但在这个例子中我简化了它 function getFolders() { var searchParams = 'mimeType = "application/vnd.google-apps.folder"'; var searchFiles = DriveApp.searchFiles(searchParams); if (searchFiles

我犯了一个简单的错误,或者我们不能在DriveApp上使用.searchFiles方法搜索文件夹吗? 我有一个更复杂的搜索参数,但在这个例子中我简化了它

function getFolders()
{
  var searchParams = 'mimeType = "application/vnd.google-apps.folder"';    
  var searchFiles = DriveApp.searchFiles(searchParams);
  if (searchFiles.hasNext())
  {
    // Do Something
  }
  else
  {
    // Error
    Logger.log("No folders found");
  }
}
文档中声明它返回一个FileIterator,但更多信息请参考Google Drive SDK

在这里的搜索参数中,我们可以指定它是否是文件夹


是否有用于搜索文件夹名称的选项?

搜索文件方法仅返回文件。根据GasAPI,这种方法用于“获取当前文件夹的所有子文件的集合,并与给定的搜索条件相匹配。”参见

要按文件夹名称查找文件夹,请使用下面的代码:

function getFolders(folderName)
{      
  var folders = DriveApp.getFolders();     
 while (folders.hasNext()) {
   var folder = folders.next();
   if(folderName == folder.getName()) {         
     return folder;
   }
 }
  return null;
}

最终使用DocsList而不是DriveApp

br araujo的上述解决方案回答了原始问题,因此我将其标记为答案


使用DocsList的问题是它返回的文件夹类型与DriveApp不兼容。为了使它们兼容,我们只需在函数调用之间传递Id,而不是在对象之间传递Id。

DocList不推荐使用。