Google Apps脚本/驱动器API(Javascript)从我共享的文件夹中删除
问题描述:
有没有人对我如何从共享文件中删除文件有任何建议?我需要这样做,而不需要实际取消访问权限,因为人员是通过联系人组添加的,因此只能删除1个人将无法工作。Google Apps脚本/驱动器API(Javascript)从我共享的文件夹中删除
注意事项:
我知道用这个可以找到该文件:
var files = DriveApp.searchFiles('sharedWithMe');
//then I set file = what I'm looking for.
然而,这并不会删除该文件从与我分享:
DriveApp.removeFile(file);
我我也试图通过修补元数据来蛮力,除了无济于事。 此外,假设与我共享的文件夹是错误的,因为列出父文件夹时文件不会返回任何内容。
答
只有DriveApp无法完全删除文件。所以有必要使用Drive API。 “removeFile()”用于更改父文件夹信息。它不能删除文件。我准备了两个样本来删除文件。如果您是该文件的所有者,则可以将其删除。
移动文件到垃圾箱并清空垃圾桶:
var file = DriveApp.getFilesByName("filename").next();
file.setTrashed(true)
Drive.Files.emptyTrash();
删除文件直接:
Drive.Files.remove("fileID");
据证实,上面的脚本可以即使其他用户正在使用删除文件。
对于使用上面的脚本,有必要使Drive API at Advanced Google Services和在https://console.developers.google.com/ Developers Console项目驱动API。
文件没有父文件夹:
如果你曾用“removeFile()”,没有父文件夹的文件可能会在您的驱动器是现有的。您可以按照脚本进行确认。这可以检索没有父文件夹的文件的文件名和文件ID。
var result = [];
var files = DriveApp.getFiles();
while (files.hasNext()) {
file = files.next();
if (!file.getParents().hasNext()) {
result.push([file, file.getId()]);
}
}
Logger.log(result);
我不是文件的所有者 - 所以使用Drive.Files.remove()将其删除是不可能的。我正在寻找从谷歌驱动器中与我共享的部分中删除文件,类似于自动执行右键单击该文件并点击删除的功能。我启用了这些APIS。 –
如果您不是文件的所有者,尽管您无法完全删除它,但可以使用此功能将文件从您的云端硬盘隐藏。 ''var file = DriveApp.getFilesByName(“filename”)。next(); var folder = file.getParents()。next(); folder.removeFile(file);''在这种情况下,您可以在我的答案中使用“无父文件夹的文件:”脚本进行确认。 – Tanaike
错误:无法检索下一个对象:迭代器已到达结尾。我认为与我分享实际上并不是父母。 –