Javascript 试图在Google Apps脚本中获取文件的文件夹路径
我正在尝试在Google Apps脚本中创建一个函数,用于查找文件夹的文件路径。 错误如下:TypeError:无法读取null的属性“append段落”(第20行,文件“Code”)Javascript 试图在Google Apps脚本中获取文件的文件夹路径,javascript,google-apps-script,google-drive-api,google-docs,Javascript,Google Apps Script,Google Drive Api,Google Docs,我正在尝试在Google Apps脚本中创建一个函数,用于查找文件夹的文件路径。 错误如下:TypeError:无法读取null的属性“append段落”(第20行,文件“Code”) “” 函数getRoot(){ var doc=DocumentApp.getActiveDocument(); var header=DocumentApp.getActiveDocument().getHeader(); var name=doc.getName(); var id=doc.getId();
“”
函数getRoot(){
var doc=DocumentApp.getActiveDocument();
var header=DocumentApp.getActiveDocument().getHeader();
var name=doc.getName();
var id=doc.getId();
var txt=“主文件夹”;
var父项=[];
var folders=DriveApp.getFileById(id).getParents();
while(folders.hasNext()){
var parent=folders.next();
var n=parent.getName();
父母。推(n);
}
var pLen=父项长度;
对于(i=0;i
我相信你的目标如下
- 您想知道
TypeError的错误消息的原因:无法读取null的属性“append段落”
- 您想删除错误
- 您希望检索活动Google文档的文件夹路径
- 在您的脚本中,我认为出现错误消息的原因是Google文档中不存在标题。由此,由
检索的getHeader()
为header
,然后发生错误。因此,在本例中,请使用null
添加标题addHeader()
可用于var doc=DocumentApp.getActiveDocument()的
doc
getHeader()
- 如果要从根文件夹检索文件夹路径,我认为需要修改脚本。在当前脚本中,当Google文档放入嵌套文件夹时,只检索文档的父级
- 通过此修改,当标头存在时,将使用
。当标头不存在时,将使用doc.getHeader()
。并且,当活动文档被放入文件夹路径(如doc.addHeader()
)时,root->folder1->folder2
)被放入标题Master folder//MyDrive//folder1//folder2
'''
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);
}
'''
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);
}