【问题标题】:How to search for Folder using Google Apps Scripts如何使用 Google Apps 脚本搜索文件夹
【发布时间】:2013-06-06 21:46:08
【问题描述】:

我是否犯了一个简单的错误,或者我们不能在 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 以获取更多信息 https://developers.google.com/apps-script/reference/drive/drive-app#searchFiles(String)

在此处的搜索参数中,我们可以指定是否为文件夹 https://developers.google.com/drive/search-parameters

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

【问题讨论】:

    标签: google-apps-script google-drive-api


    【解决方案1】:

    搜索文件方法只返回文件。根据 GAS API,此方法用于“获取当前文件夹的所有子文件并与给定搜索条件匹配的文件的集合”。见here

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

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

    【讨论】:

      【解决方案2】:

      最终使用 DocsList 而不是 DriveApp

      https://developers.google.com/apps-script/reference/docs-list/docs-list#getAllFolders()

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

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

      【讨论】:

      • DocList 已弃用。
      猜你喜欢
      • 1970-01-01
      • 2021-09-15
      • 2020-11-26
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      相关资源
      最近更新 更多