首页 > 解决方案 > Google Apps 脚本 - DriveApp.getFoldersByName - 无法按预期获取文件 - 尝试从文件夹名称获取 FileID

问题描述

我正在尝试从 Google Apps 脚本中的文件夹名称中获取 ID。文件夹名称是唯一的。

现在我有:

var folderID = DriveApp.getFoldersByName(fileName).next().getId()

我也试过:

var folders = DriveApp.getFoldersByName(fileName)
while (folders.hasNext()) {
var folder = folders.next()
var fileID = folder.getId()
}

两个实例都告诉我“无法检索下一个对象:迭代器已到达末尾。”

我知道这个文件夹存在,它在我的驱动器中。我尝试逐字复制文件的名称,将其放在引号中,然后将其放入 getFoldersByName 函数中,但没有成功。

如果有帮助,则该文件夹在文件结构上有点下降。DriveFile1>DriveFile2>DriveFile3>FileToBeFound

有任何想法吗?

即使我搜索文件名的一小部分,然后尝试遍历它也找不到任何东西。

这里的目标是根据上传表单的用户将表单上传放置到正确的文件夹中。用户名是唯一的,上传后无法编辑文件。其他一切都很好,我只是无法从文件夹名称中提取文件 ID

标签: google-apps-script

解决方案


只是为了确保试试这个:

function getFolderId(foldername) {
  var foldername=foldername||'Folder Name';
  var folders=DriveApp.getFoldersByName(foldername);
  var n=0;
  while(folders.hasNext()) {
    var folder=folders.next();
    n++;
  }
  if(n==1) {
    Logger.log(folder.getId());
    return folder.getId();
  }else{
    SpreadsheetApp.getUi().alert("More that one folder with the name " + foldername);
  }
}

推荐阅读