0

有没有人对我如何从共享文件中删除文件有任何建议?我需要这样做,而不需要实际取消访问权限,因为人员是通过联系人组添加的,因此只能删除1个人将无法工作。Google Apps脚本/驱动器API(Javascript)从我共享的文件夹中删除

注意事项:

我知道用这个可以找到该文件:

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

然而,这并不会删除该文件从与我分享:

DriveApp.removeFile(file); 

我我也试图通过修补元数据来蛮力,除了无济于事。 此外,假设与我共享的文件夹是错误的,因为列出父文件夹时文件不会返回任何内容。

回答

0

只有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); 
+0

我不是文件的所有者 - 所以使用Drive.Files.remove()将其删除是不可能的。我正在寻找从谷歌驱动器中与我共享的部分中删除文件,类似于自动执行右键单击该文件并点击删除的功能。我启用了这些APIS。 –

+0

如果您不是文件的所有者,尽管您无法完全删除它,但可以使用此功能将文件从您的云端硬盘隐藏。 ''var file = DriveApp.getFilesByName(“filename”)。next(); var folder = file.getParents()。next(); folder.removeFile(file);''在这种情况下,您可以在我的答案中使用“无父文件夹的文件:”脚本进行确认。 – Tanaike

+0

错误:无法检索下一个对象:迭代器已到达结尾。我认为与我分享实际上并不是父母。 –

相关问题