我在google驱动器上的文件夹中有多个已命名的电子表格。如何通过将其中一个名称传递给函数来获取其id或url?
我可以使用DriveApp获取该文件,但我不知道如何从中获取id。
function getFile(name)
{
var folder = DriveApp.getFolderById('id');
var file = folder.getFilesByName(name);
//get file id
}
有没有办法使用DriveApp或SpreadsheetApp获取ID或网址?
答案 0 :(得分:1)
命令folder.getFilesByName(name);
可能会检索多个文件(名称为 getFile s ),因此它会为您提供文件迭代器您需要使用 while循环进行解析
如果您完全确定至少有一个具有该名称的文件,则可以避免使用如下脏代码的循环:
var file = folder.getFilesByName(name).next();
然后使用以下方法检索id:
var id = file.getId()
- 编辑:
如果您不确定要检索文件(您不知道它是否存在或具有正确的名称......),您需要检查文件迭代器的结果。
而不是写:
var file = folder.getFilesByName(name);
更喜欢写:
var files = folder.getFilesByName(name); // you could have zero or more than one file
如果您认为有多个具有该名称的文件,那么您可以执行 while循环:
var out = [];
while(files.hasNext()) {
var file = files.next();
out.push(file.getId());
Logger.log(file.getId());
}
return out;
或者如果只有一个或零个文件,那么简单的if将完成这项工作:
if (files.hasNext()) {
var file = files.next();
Logger.log(file.getId());
return file.getIt(); // eventually
}
else {
Logger.log("there is no file with that name");
return "no id"; // eventually
}