Google Apps脚本/云端硬盘API(Javascript)已从与我共享中删除

时间:2017-02-25 01:21:50

标签: javascript google-apps-script google-drive-realtime-api

有没有人对如何删除与我共享的文件有任何建议?我需要在没有实际撤销访问权限的情况下执行此操作,因为人员是通过联系人组添加的,因此只删除1个人将无法正常工作。

注意事项:

我知道使用它可以找到文件:

var files = DriveApp.searchFiles('sharedWithMe');
//then I set file = what I'm looking for.  

但是,这不会删除与我共享的文件:

DriveApp.removeFile(file);

我也尝试通过修补元数据来强制执行,除非它无济于事。 另外,假设与我共享是一个文件夹是错误的,就像列出父文件夹时文件没有返回任何内容一样。

1 个答案:

答案 0 :(得分:0)

只有DriveApp无法完全删除文件。因此有必要使用Drive API。 " removeFile()"用于更改父文件夹信息。它无法删除文件。我准备了2个样本来删除文件。如果您是该文件的所有者,则可以将其删除。

将文件移至垃圾箱并清空垃圾箱:

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/和Drive 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);