google-apps-script - 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
解决方案
只是为了确保试试这个:
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);
}
}
推荐阅读
- angular - 我可以在 Angular 项目中重新安装 npm 来修复它吗?
- java - 有什么方法可以识别您从中调用静态方法的类(在层次结构中)?
- css - 允许溢出:仅对输入或选择字段可见
- environment-variables - 在 nextjs 中,“/api”路由的代码是否会随时出现在浏览器中?如果是这样有没有办法强制服务器端执行?
- python - Prophet fit() 无法识别数据框
- r - 在R中,从另一列中的值中减去一列中的值
- amazon-sagemaker - 如何在 SageMaker AutoPilot 中启用 SageMaker 调试器
- asp.net - 如何清除网格视图、文字和面板值?
- c# - 通过 C# 类发布到 API 时返回 415 Unsupported Media Type Error
- google-apps-script - 使用 Google Script 和 Google Sheets 查找和替换单元格中的文本