尝试在 Google Apps 脚本中获取文件的文件夹路径

Trying to get folder path of file in Google Apps Script

我正在尝试在 Google Apps 脚本中创建一个函数来查找文件夹的文件路径。 这是错误:TypeError: Cannot read 属性 'appendParagraph' of null (line 20, file "Code")

'''
function getRoot() {

  var doc = DocumentApp.getActiveDocument();
  var header = DocumentApp.getActiveDocument().getHeader();
  var name = doc.getName();
  var id = doc.getId();
  var txt = "Master Folder";
  var parents = [];
  var folders = DriveApp.getFileById(id).getParents();
  while (folders.hasNext()){
    var parent = folders.next();
    var n = parent.getName();
    parents.push(n);
  }
  var pLen = parents.length;
  for (i = 0; i < pLen; i++){
    txt = txt + "//" + parents[i];
  }

  var headerPar = header.appendParagraph(txt);


}
'''

我相信你的目标如下。

  • 您想知道TypeError: Cannot read property 'appendParagraph' of null.
  • 的错误信息的原因
  • 您想删除错误。
  • 您想检索活动 Google 文档的文件夹路径。

为此,这个答案怎么样?

修改点:

  • 在您的脚本中,我认为您的错误消息的原因是 header 不存在于 Google 文档中。这样,getHeader()得到的header就是null,然后就报错了。所以在这种情况下,请使用 addHeader().
  • 添加 header
  • doc of var doc = DocumentApp.getActiveDocument(); 可用于 getHeader().
  • 如果你想从根文件夹中检索文件夹路径,我认为你的脚本需要修改。在您当前的脚本中,当 Google 文档放入嵌套文件夹时,仅检索 parent 的文档。

当您的脚本使用以上几点进行修改后,将变成如下。

修改后的脚本:

function getRoot() {
  var doc = DocumentApp.getActiveDocument();

  var header = doc.getHeader() || doc.addHeader();  // Modified

  var name = doc.getName();
  var id = doc.getId();
  var txt = "Master Folder";
  var parents = [];
  var folders = DriveApp.getFileById(id).getParents();

  // --- I modified below script
  while (folders.hasNext()) {
    var folder = folders.next();
    parents.push(folder.getName());
    folders = folder.getParents();
  }
  parents = parents.reverse();
  // ---

  var pLen = parents.length;
  for (i = 0; i < pLen; i++){
    txt = txt + "//" + parents[i];
  }
  var headerPar = header.appendParagraph(txt);
}
  • 通过此修改,当header存在时,使用doc.getHeader()。当 header 不存在时,使用 doc.addHeader()。并且,当活动文档被放入 root -> folder1 -> folder2 等文件夹路径时,Master Folder//MyDrive//folder1//folder2 被放入 header.

参考文献: