命令folder.getFilesByName(name);
潛在檢索多個文件(具有它的名字說IT- 的GetFile 小號),所以它給你一個文件迭代器,你需要用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 (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
}
我得到'無法檢索下一個對象:當我添加'.next()'和'var id = file.getId()'時,迭代器已經到達末尾。 while循環會是什麼樣子? 'while(file.hasNext()){get file id}'? – user4411473
這意味着沒有該名稱的文件(0結果)我將更新帖子以向您顯示要執行的操作 – Harold