DriveApp makeCopy的语法(名称,目标)

时间:2014-01-20 16:34:36

标签: google-apps-script

而不是使用:

var copyDoc = DocsList.getFileById(templateid).makeCopy(docName).getId(); 

我想用:

var copyDoc = DriveApp.getFileById(templateid).makeCopy(name, destination).getId();

我无法获得目标权限的语法,这是文件夹路径还是文件夹ID或其他内容?一个例子将不胜感激。

1 个答案:

答案 0 :(得分:2)

我知道这个问题有点旧,但希望这会有助于未来的读者。我有同样的疑问,并经过几次猜测后发现了它。基本上,您必须考虑Google云端硬盘中的文件夹,方法与其他任何对象(例如Google文档或电子表格)相同,即文件夹不是真实的,它们只是具有Google ID参考的对象。

我解决这个问题的简单方法是创建我所需的文件夹结构,然后记下该文件夹的Google URL ID,这可以在导航文件夹时在地址栏URL中找到,例如:

 https://drive.google.com/a/[your company]/?usp=chrome_app&usp=chrome_app#folders/ABCDEFGHIJKL12345
                                                                                  ^^^^^^^^^^^^^^^^^

在上面的示例网址中,带下划线的文字将是唯一ID。

然后,您可以在脚本中使用getFolderById()方法设置目标,例如:

var file = "New File Name";
var folder = DriveApp.getFolderById("**[Your ID From Above]**");
file.makeCopy(file, folder);

还有其他方法可以按名称获取文件夹,但这些方法包括一次迭代一个文件夹,大大增加了所需的代码量。