Google apps script Google应用程序脚本-DriveApp-getParents()未按预期工作
这给了我以下错误: TypeError:无法调用未定义的方法“getName”。(第50行,文件 “守则”) 类似地,由于某些原因,尝试遍历父文件夹(客户端和tpl)只会显示tplGoogle apps script Google应用程序脚本-DriveApp-getParents()未按预期工作,google-apps-script,google-drive-api,google-docs-api,Google Apps Script,Google Drive Api,Google Docs Api,这给了我以下错误: TypeError:无法调用未定义的方法“getName”。(第50行,文件 “守则”) 类似地,由于某些原因,尝试遍历父文件夹(客户端和tpl)只会显示tpl var tpl_intakeDoc = DriveApp.getFileById(docIDs.tpl_intake); var parent = tpl_intakeDoc.getParents()[0]; Logger.log(parent.getName()); 记录的内容包括: 第三方物流 我希
var tpl_intakeDoc = DriveApp.getFileById(docIDs.tpl_intake);
var parent = tpl_intakeDoc.getParents()[0];
Logger.log(parent.getName());
记录的内容包括:
第三方物流
我希望看到的是:
第三方物流
[19-06-1404:14:11:764 MDT]客户
我做错了什么?要获取对“MyDrive”文件夹(驱动器的根目录)的引用,您可以使用该函数
var rootFolder=DriveApp.getRootFolder()代码>
它将返回一个文件夹对象,就像您按ID搜索文件夹一样。下面是关于DriveApp类的进一步文档,这将帮助您解决任何其他疑问
文档URL:
MyDrive
、Client
和tpl
是文件夹
intraction.doc
是一个文件
- 您想使用
intraction.doc
的父文件夹在MyDrive
下检索Client
和tpl
的文件夹
- 您想知道运行第二个脚本时,仅检索到
tpl
的原因
如果我的理解是正确的,那么这个答案呢?在这个答案中,您的第二个脚本被修改
修改点:
- 在您问题中的第二个脚本中,我认为在运行脚本时会发生错误。因此,请修改如下
var parents = tpl_intakeDoc.getParents();
while (parents.hasNext()) {
var parents = parents.next();
Logger.log(folder.getName());
}
- 在上面的脚本中,将检索
aintain.doc
的父文件夹。因此只返回tpl
- 为了检索
Client
和tpl
的文件夹,需要检索tpl
的父文件夹。并检索tpl
父文件夹下的文件夹
此脚本的流程如下所示
var parents = tpl_intakeDoc.getParents();
while (parents.hasNext()) {
var parents = parents.next();
Logger.log(folder.getName());
}
检索intraction.doc
的父文件夹。
- 检索tpl
tpl
的父文件夹。
被检索MyDrive
MyDrive
下的文件夹。
- 检索
和客户端
第三方物流
- 如果
是根文件夹,并且如果您想从根文件夹中检索MyDrive
和tpl
的文件夹,我认为这很有用Client
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
}
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
}
}
}