![](/img/trans.png)
[英]How to move a folder in Google Drive using Google Apps Script
[英]Move a shared file into My Drive using Google Script?
我正在为公司编写脚本,该脚本将自动在自己的驱动器中创建文件的副本,然后将该副本的所有权从电子表格转移到用户列表中。 该脚本完全可以运行,除了该文件是在用户的“所有文件”中创建的,并且不会显示在其“我的云端硬盘”中! 转移所有权不是我遇到的问题,问题在于转移的文件在新所有者的云端硬盘中的位置。
我曾尝试将其发送到他们的根文件夹,但这没有用,我不确定为什么吗? 它将它发送给我的“我的云端硬盘”,但已复制到我的“我的云端硬盘”中已经存在的文件夹中(因为我已从该驱动器中的文件夹中的文件中复制了该文件),但该列表中的其他人新共享并转移到该文件的操作,将其移至根目录并没有任何作用,并且保留在“所有文件”中,而文件上没有任何标签。
有人知道如何自动移动它吗?
这是我一直在使用的代码,该代码可用于我自己的“我的云端硬盘”,但列表中没有其他代码:
//Take new file out of parent folders
var folders = newDoc.getParents(); //get parents
for (var j = 0; i < folders.length; i++){ //loop through & delete parents
DocsList.getFileById(newDocId).removeFromFolder(folders[i]); //using DocsList
}
var root = DocsList.getRootFolder(); //Get root
DocsList.getFileById(newDocId).addToFolder(root); //add to my drive
编辑:有人告诉我,所有权转移应自动将其放入“我的云端硬盘”文件中,但那没有发生?
编辑2:我尝试使用“ addFile()”,它应该将其添加到用户文件夹的“我的驱动器”文件夹中,但只能将其添加到运行脚本的人的驱动器中,其余用户仍然可以获取它仅在其“所有项目”文件夹中。 这让我发疯,有人请帮助; C
因此,经过几天的疯狂驾驶,几乎到处询问,我终于想到了这是新的Google Drive UI推出的效果,因此现在看来,就像现在这样,直到Google修复: C
令人不满意的结局。
不幸的是,这不可能完全按照您的描述进行。
如您所见,文件所有权可以更改。 这是因为您拥有该文件,并且脚本可以通过您授予云端硬盘帐户的授权来访问该文件。
无法将文件放置在其他用户的Drive上的某个位置,因为脚本没有特权在不知道的Drive上设置位置。
但是,可以通过在每个用户帐户下运行脚本来设置位置,但是显然设置和维护起来有些麻烦。
另一种选择:如果您使用GAM( Google Apps Manager ),则可以跨帐户进行更改。 这是因为GAM是在管理员用户访问权限下运行的。 GAM网站上的示例:
本示例将“ My Ramblings”文件更新为已加星标,并放置在名为“我所说的精彩内容”的文件夹下(假设用户已经存在该名称的文件夹)
gam user bsmith@acme.com update drivefile drivefilename "My Ramblings" starred true parentname 'Brilliant things I've said'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.