如何获取当前演示文稿的ID或名称以获取其父文件夹ID?
获取当前幻灯片所在父文件夹并创建文档的正确方法
你的代码里有几个明显的错误,导致无法正常运行:
- JavaScript变量名大小写敏感,
Var要改成小写的var - Google Apps Script的API类名首字母必须大写,比如
SlidesApp、DriveApp,不能小写 DriveApp.getFileById()需要传入文件ID,你传的是幻灯片对象ss,应该用ss.getId()获取ID- 多余的
SlidesApp(ss.getid())这行完全没用,直接删掉
下面是修正后的代码,能正常获取当前幻灯片的父文件夹ID和名称:
function getParentFolderInfo() { // 获取当前打开的幻灯片对象 var presentation = SlidesApp.getActivePresentation(); // 通过幻灯片ID拿到Drive里的文件对象 var file = DriveApp.getFileById(presentation.getId()); // 获取文件的父文件夹集合(文件可能有多个父文件夹,这里取第一个) var parentFolders = file.getParents(); if (parentFolders.hasNext()) { var parentFolder = parentFolders.next(); var folderId = parentFolder.getId(); var folderName = parentFolder.getName(); Logger.log("父文件夹ID: " + folderId); Logger.log("父文件夹名称: " + folderName); // 返回文件夹对象,方便后续创建文档用 return parentFolder; } else { Logger.log("这个幻灯片没有父文件夹,可能直接在Drive根目录或者已被删除"); return null; } }
如果要在同一文件夹里创建新文档,直接调用上面的函数拿到文件夹对象,再执行创建操作就行,比如创建Google文档的例子:
function createDocInSameFolder() { var targetFolder = getParentFolderInfo(); if (targetFolder) { // 创建新文档(默认在根目录) var newDoc = DocumentApp.create("我的新文档"); // 把新文档移到目标文件夹 var newDocFile = DriveApp.getFileById(newDoc.getId()); targetFolder.addFile(newDocFile); // 移除根目录里的副本(可选,避免重复) DriveApp.getRootFolder().removeFile(newDocFile); Logger.log("新文档已经成功创建在当前幻灯片所在的文件夹里了"); } }
内容的提问来源于stack exchange,提问作者Stanley Levine
相关产品推荐
相关产品推荐

