2017-02-21 364 views
0

我想清空Share with me folder如何清空这是我的代码,我正在使用Google Drive V3。空在Google云端硬盘中与我共享文件夹?

service.Permissions.Delete(PermissionID, fileId).Execute(); 
service.Files.Delete(fileId).Execute(); 

两行都给出了许可403错误。

如果我删除MyDrive文件时间下联他工作得很好,但与我共享的文件夹不会被删除

+0

您使用的是服务帐户吗? – DaImTo

回答

0

,你需要记住的事情是,跟我分享一下是不是你真正拥有,这就是为什么这个没一个文件没有工作。

service.Files.Delete(fileId).Execute();

首先获取与我共享文件夹中的所有文件的列表。

var request = service.Files.List(); 
request.Q = "(sharedWithMe = true)"; 
request.Fields = "*"; 
var results = request.Execute(); 

找到要删除的文件:

var myfile = results.Files.Where(a => a.Name.ToLower().Equals("receipt.pdf")).FirstOrDefault(); 

现在找到与当前认证的用户相关联的文件的权限:

var per = myfile.Permissions.Where(a => a.EmailAddress.ToLower().Equals("[email protected]")).FirstOrDefault(); 

删除的邮件文件的权限。

service.Permissions.Delete(myfile.Id, per.Id).Execute(); 

我测试了它,它工作。您可以通过循环运行初始请求,并根据需要删除所有内容。

注意:这似乎不适用于所有情况。我的Google驱动器上有一个文件,通过看起来像是服务帐户的方式与我共享。我没有对该文件的权限,因为我不能删除我的访问。我仍在挖掘。

+0

返回权限错误 – KrishnaKanhaiya

+0

您使用的是服务帐户吗?我可以通过只读权限执行此操作。使用Oauth2这里是我使用的完整源代码https://gist.github.com/LindaLawton/6e3b76fa3e9a2d8d72d96fe7f1d71297 – DaImTo

相关问题