删除以前从“与我共享”添加到“我的云端硬盘”中的文件

时间:2015-03-16 18:17:54

标签: google-drive-api

Google云端硬盘具有很酷的功能:可以将“与我共享”中的文件或文件夹添加到“我的云端硬盘”。

enter image description here

然后我可以用同样的方式从“我的驱动器”中删除此文件(请注意,如果我删除了网络版中的共享文件,则不会进入“废纸篓”)

enter image description here

但是,我在尝试使用Google Drive API删除此文件时收到403 Forbidden错误(由于权限不足,因为我不是此文件的所有者)。因此,正如人们所看到的,这不是一个简单的删除请求。我该如何实现此功能?

3 个答案:

答案 0 :(得分:2)

添加到我的云端硬盘更改了相关项目的父级馆藏。要更改此项,您需要取消项目而不是删除。

使用about.get调用检索My Drive ID,然后从文件/文件夹的文件资源中的父项列表中删除该ID。使用新的父母列表更新文件。

答案 1 :(得分:2)

迟到的答案,但我也遇到了这个问题。发生这种情况是因为文件实际上没有复制,它是同一个实例。如果您将其从“我的云端硬盘”中删除,它也会从共享云端硬盘中删除。您可能无权将其从共享驱动器中删除。

如果您只想将其从“我的云端硬盘”中删除:点击该文件。在右侧面板的“详细信息”下,有一个位置列表。至少共享驱动器和我的驱动器列在那里。单击X将其从“我的云端硬盘”中删除,它将在共享云端硬盘上保留时消失。

答案 2 :(得分:0)

这是我发现的。删除与我共享的项目的父项后,即使项目的父项列表为空,sharedWithMe搜索仍会返回该项目。

以下是代码:

string sItemId = (this is the Id of the item shared with me);
string sParentId = driveService.About.Get().Execute().RootFolderId;
driveService.Parents.Delete(sItemId, sParentId).Execute();
var parentList = m_driveService.Parents.List(sItemId).Execute();

此时parentList.Items.Count0

现在,当我搜索sharedWithMe时,该项目位于返回列表中。