我正在尝试从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
答案 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正常工作。不管我放在那里什么都找不到。