Google 驱动器中的空文件夹与我共享?

Empty Shared with me Folder in Google Drive?

我想清空 Share with me folder 我怎样才能清空这是我的代码,我正在使用 Google Drive V3。

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

这两行都给出了权限 403 错误。

如果我当时删除了 MyDrive 文件第二行他工作正常但与我共享文件夹未删除

您需要记住的是,与我共享不是您实际拥有的文件,这就是它不起作用的原因。

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("xxxxx@gmail.com")).FirstOrDefault();

删除邮件文件的权限。

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

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

注意:这似乎并非在所有情况下都有效。我的 Google 驱动器上有一个文件,该文件似乎是通过服务帐户与我共享的。我对那里的文件没有权限,因为我无法删除我的访问权限。我还在挖掘。