MyDrive |_ Client |_ tpl |_ intake.doc
我正在尝试获取MyDrive文件夹的引用。
var tpl_intakeDoc = DriveApp.getFileById(docIDs.tpl_intake);
var parent = tpl_intakeDoc.getParents()[0];
Logger.log(parent.getName());
这给了我以下错误:
TypeError:无法调用未定义的方法“ getName”。 (第50行,文件 “代码”)
类似地,由于某些原因,尝试遍历父文件夹(Client和tpl)仅显示tpl。
var parents = tpl_intakeDoc.getParents();
while (parents.hasNext()) {
var parents = parents.next();
Logger.log(folder.getName());
}
所有记录的是:
[19-06-14 04:14:11:764 MDT] tpl
我希望在其中看到类似的东西
[19-06-14 04:14:11:764 MDT] tpl
[19-06-14 04:14:11:764 MDT]客户端
我在做什么错了?
答案 0 :(得分:1)
MyDrive
,Client
和tpl
是文件夹。intake.doc
是一个文件。Client
的父文件夹在tpl
下检索MyDrive
和intake.doc
的文件夹。tpl
的原因。如果我的理解正确,那么这个答案如何?在此答案中,您的第二个脚本已修改。
在问题的第二个脚本中,我认为运行该脚本时发生错误。因此,请进行如下修改。
var tpl_intakeDoc = DriveApp.getFileById(docIDs.tpl_intake); // Added
var parents = tpl_intakeDoc.getParents();
while (parents.hasNext()) {
var parent = parents.next(); // Modified
Logger.log(parent.getName()); // Modified
}
在上述脚本中,检索了intake.doc
的父文件夹。因此,仅返回tpl
。
Client
和tpl
的文件夹,需要检索tpl
的父文件夹。并检索tpl
父文件夹下的文件夹。此脚本的流程如下。
intake.doc
的父文件夹。
tpl
被检索。tpl
的父文件夹。
MyDrive
被检索。MyDrive
下的文件夹。
Client
和tpl
。var tpl_intakeDoc = DriveApp.getFileById(docIDs.tpl_intake);
var parent = tpl_intakeDoc.getParents(); // tpl
if (parent.hasNext()) {
var parentOnParent = parent.next().getParents(); // MyDrive
if (parentOnParent.hasNext()) {
var MyDrive = parentOnParent.next().getFolders();
while (MyDrive.hasNext()) {
var folder = MyDrive.next();
Logger.log(folder.getName()) // tpl, Client
}
}
}
MyDrive
是根文件夹,并且要从根文件夹中检索tpl
和Client
的文件夹,我认为Alberto Molina's answer对于这个。如果我误解了您的问题,而这不是您想要的方向,我深表歉意。
答案 1 :(得分:0)
要获取对“ MyDrive”文件夹(驱动器的根目录)的引用,可以使用函数
var rootFolder = DriveApp.getRootFolder();
,它将返回文件夹对象,就像您通过ID搜索文件夹一样。以下是有关DriveApp类的更多文档,可以帮助您解决任何其他疑问。
文档URL:https://developers.google.com/apps-script/reference/drive/drive-app#getrootfolder