Google Apps脚本-DriveApp.getFoldersByName-无法按预期方式获取文件-尝试从文件夹名称获取FileID

时间:2019-10-23 19:23:55

标签: google-apps-script

我正在尝试从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

2 个答案:

答案 0 :(得分:1)

请务必尝试以下操作:

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);
  }
}

答案 1 :(得分:0)

可以使用以下方法修复:

var folderName = <myuniquefoldername>

folderName = "Title Contains '"+folderName + "'"

var folderID = DriveApp.searchFolders(folderName).next().getId()

将在其中存储folderID。我根本无法使getFoldersByName正常工作。不管我放在那里什么都找不到。