行为DocsList.getFolder(路径)以防相同的foldernames

时间:2014-05-17 11:20:08

标签: google-apps-script google-drive-api

类文件夹的Google Apps脚本文档以

开头
var folder = DocsList.getFolder('kittens');

确实它会返回一个引用文件夹'kittens'的对象,即使该文件夹嵌套了几层深度。

我问自己“如果文件夹树中存在多个文件夹'小猫'会发生什么?”

我做了一个例子,实际上相同的代码只返回了对文件夹'kittens'的一个引用。

所以我的结论是所呈现的代码含糊不清,结果不可靠,因为我不知道返回文件夹的标准是什么。

var folders = DocsList.getFolder();

存在,返回所有文件夹,但

var folders = DocsList.getFolder('kittens');

返回所有文件夹'小猫'不存在。

我知道你可以使用

var listFolders = DriveApp.getFoldersByName('kittens');

但确实会返回FolderIterator而不是文件夹数组。

任何人都可以告诉我,如果我错过了一个观点,为什么Google没有提供返回文件夹数组的方法以及用于确定DocsList.getFolder('kittens');

将返回哪个文件夹的标准

1 个答案:

答案 0 :(得分:1)

DocsList.getFolder()是一种尝试模拟文件系统上的文件夹路径的特殊方法。也就是说它需要一个路径字符串并尝试查找与该路径匹配的文件夹。由于Google云端硬盘允许使用相同名称的多个文件夹,因此可能会造成混淆,我们通常不建议您使用它。

至于为什么DriveApp.getFoldersByName()返回迭代器,这是设计服务时做出的设计决策。出于性能原因,所有可返回大量结果的方法都会返回迭代器而不是数组。