我在google文档中运行脚本。如何获取此文档所在的最近文件夹,或者如何为我的文档的最近文件夹创建子文件夹?
我想创建一个子文件夹,但是这个子文件夹总是在Google驱动器的顶层创建。
`if (!DriveApp.getFoldersByName("myNewFolder")) DriveApp.createFolder("myNewFolder");`
所以看来活动文件夹是顶层文件夹。
没有DocumentApp.getMyFolder()
或DriveApp.getRecentFolder()
方法。
可能有某种LINUX风格的东西吗?
DriveApp.createFolder("./myNewFolder");
那么,如何获得最近的文件夹,或者-甚至更好-如何在最近的文件夹中创建一个新文件夹,然后在此新文件夹中创建一个新文档?备注:仅当该文件夹不存在时,才应新建它。
非常感谢!
答案 0 :(得分:0)
问题
在存储Google文档的Goolge驱动器中的文件夹(直接而不移动)中创建一个文件夹。
解决方案
此示例实用程序功能通过其ID获取文件的父级Folder
:
/**
* Gets file location;
* @param {String} id document id;
* @return {Folder|null} file's folder;
*/
function getLocation(id) {
var file = DriveApp.getFileById(id);
var folders = file.getParents();
if(folders.hasNext()) {
return folders.next();
}else {
return null;
}
}
获取当前文档的父文件夹(假设您的脚本已绑定到文档,否则可以通过其他方式获取ID):
function createSubfolderInCurr() {
var id = DocumentApp.getActiveDocument().getId();
var folder = getLocation(id);
if(folder) {
//part 3 goes here;
}
}
检查子文件夹是否已存在,并根据需要创建一个子文件夹:
var exists = folder.getFoldersByName('myNewFolder').hasNext();
if(!exists) {
var newfolder = folder.createFolder('myNewFolder');
//part 4 goes here;
}
关于在该文件夹中创建新文档,首先需要创建Document
,然后以File
的身份访问并将其从root
移至新创建的文件夹:
var newdoc = DocumentApp.create('NewFile');
var newId = newdoc.getId();
var newfile = DriveApp.getFileById(newId);
DriveApp.removeFile(newfile);
newfolder.addFile(newfile);
参考