Google apps script Google应用程序脚本-DriveApp-getParents()未按预期工作

Google 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()); 记录的内容包括: 第三方物流 我希

这给了我以下错误:

TypeError:无法调用未定义的方法“getName”。(第50行,文件 “守则”)

类似地,由于某些原因,尝试遍历父文件夹(客户端和tpl)只会显示tpl

  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
        }
      }
    }