将文件和文件夹移到回收站或将其删除

您可以将 Google 云端硬盘文件和文件夹从“我的”和 云端硬盘和共享云端硬盘。要执行此操作,您有两种选择:将邮件移至“已删除邮件” 或删除。

您可以将文件和文件夹移到回收站,然后还原它们(在 30 分钟内) 天)。删除文件和文件夹会将它们从以下位置永久移除 云端硬盘。如果您将多个文件移至回收站、还原或永久删除 文件或文件夹,您可能需要过一段时间才会注意到更改。

本指南介绍了如何处理云端硬盘中的文件。

回收站

如要移除云端硬盘文件,您可以将其移至回收站。中的文件 回收站也会在 30 天后自动删除您可以从以下位置恢复文件: 删除超过 30 天的数据。

只有文件所有者可以将文件移至回收站,且其他用户无法查看 其所有者的回收站。如果您尝试删除不归您所有的文件,则会收到 insufficientFilePermissions 错误。如需了解详情,请参阅权限

要验证您是文件所有者,请调用 使用 fileIdfiles.get 方法 并将 fields 参数设为布尔值 ownedByMe 字段。ownedByMe 系统不会针对共享云端硬盘中的文件填充此字段,因为文件归 共享云端硬盘,而不是单个用户。有关退货的更多信息 字段使用 fields 参数,请参阅返回特定字段的特定字段 文件

如果您不是文件所有者,但仍想保留回收站文件的副本,请执行以下操作: 以下项:

  • 创建文件的副本。
  • 请与所有者联系,让其从回收站中还原此内容。

将文件移至回收站

要将文件移至回收站,请使用 files.update 方法,并将 trashed 字段设置为 True。如要将共享云端硬盘文件移至回收站,您还必须将 将 supportsAllDrives 查询参数设置为 True。如需了解详情,请参阅 实现共享云端硬盘支持

如果成功,响应将 body 包含一个 files 资源实例。

以下代码示例展示了如何使用 fileId 将文件标记为 已删除:

Python

body_value = {'trashed': True}

response = drive_service.files().update(fileId="FILE_ID", body=body_value).execute()

Node.js

const body_value = {
  'trashed': True
};

const response = await drive_service.files.update({
      fileId: 'FILE_ID',
      requestBody: body_value,
    });
    return response;

FILE_ID 替换为您要删除的文件的 fileId 回收站。

确定移至回收站的文件的属性

将文件移至回收站后,您可以检索其他 files 属性。您可以使用 files.get 方法,并添加 fields 参数中的以下字段。有关详情,请参阅返回 特定字段

系统会为所有文件填充以下字段:

  • trashed:文件是否已被移入回收站(明确删除或放入回收站中) 父级文件夹。请注意,将 trashedfiles.update 搭配使用时, 方法可设置文件的状态,files.get 方法则检索文件的 状态。
  • explicitlyTrashed:文件是否已被明确移至回收站 从父文件夹中递归删除。

系统只会为位于共享云端硬盘的文件填充以下字段:

  • trashedTime:内容在 RFC 中被移到回收站的时间 3339 日期时间格式。如果您使用的是旧版 Drive API v2 版本,此字段称为 trashedDate
  • trashingUser:如果文件已明确移至回收站,则是将其移至回收站的用户。

还原回收站中的文件

要从回收站中恢复文件,请使用 files.update 方法,并将 trashed 字段设置为 False。如要将共享云端硬盘文件移出回收站,您还必须将 将 supportsAllDrives 查询参数设置为 True。如需了解详情,请参阅 实现共享云端硬盘支持

如果成功,响应将 body 包含一个 files 资源实例。

以下代码示例展示了如何使用 fileId 将文件标记为 已还原:

Python

body_value = {'trashed': False}

response = drive_service.files().update(fileId="FILE_ID", body=body_value).execute()

Node.js

const body_value = {
  'trashed': False
};

const response = await drive_service.files.update({
      fileId: 'FILE_ID',
      requestBody: body_value,
    });
    return response;

FILE_ID 替换为您要删除的文件的 fileId 还原

清空回收站

您可以永久删除该用户已移至的所有云端硬盘文件 回收站 files.emptyTrash 方法。接收者 清空共享云端硬盘的回收站,您还必须设置 driveId 查询 将参数附加到共享云端硬盘 ID。

如果成功,响应将 body包含一个空的 实例。

以下代码示例展示了如何使用 fileId 删除 回收站:

Python

response = drive_service.files().emptyTrash().execute()

Node.js

 const response = await drive_service.files.emptyTrash({
    });
    return response;

删除

您可以永久删除云端硬盘文件,而无需将其移至 回收站。删除文件后,该文件的共享对象会失去文件的访问权限 。如果您希望其他人保留对相应文件的访问权限,可以转移 所有权授予 在删除前将其他人告知您。

如要删除共享云端硬盘文件,用户的父级必须具备 role=organizer 文件夹中。如果您要删除某个文件夹,则该用户拥有的所有后代也会一并删除 已删除。如需了解详情,请参阅权限

要永久删除用户拥有的文件而不将其移至回收站,请使用 files.delete 方法。要删除 共享云端硬盘文件,您还必须将 supportsAllDrives 查询参数设置为 True。有关详情,请参阅实现共享云端硬盘 支持

如果成功,响应将 body 包含一个 空实例。

以下代码示例展示了如何使用 fileId 删除文件:

Python

response = drive_service.files().delete(fileId="FILE_ID").execute()

Node.js

 const response = await drive_service.files.delete({
      fileId: 'FILE_ID'
    });
    return response;

FILE_ID 替换为您要删除的文件的 fileId 删除。

权限

下表显示了执行每项操作所需的角色权限 操作。如需查看角色的完整列表以及每个角色所允许的操作, 请参阅角色和权限

允许的操作 owner organizer fileOrganizer writer commenter reader
将文件和文件夹移至回收站
恢复回收站中的文件和文件夹
清空回收站
永久删除文件或文件夹
删除共享云端硬盘中的文件和文件夹 [*]

功能

files 资源包含一个集合 布尔值 capabilities 字段(用于指示是否可以执行某项操作) 对文件执行的操作

要检查功能,请调用 使用 fileIdfiles.get 方法 并将 fields 参数设为 capabilities 字段。如需进一步了解 有关如何使用 fields 参数返回字段的信息,请参阅返回 文件的特定字段

系统会为所有文件填充以下字段:

  • capabilities.canTrash:当前用户是否可以将此文件移动到 回收站。
  • capabilities.canUntrash:当前用户是否可以恢复此文件 回收站中的内容。
  • capabilities.canDelete:当前用户是否可以删除此文件。
  • capabilities.canRemoveChildren:当前用户是否可以移除 子文件夹。如果内容不是文件夹,则此字段为 false。

系统只会为位于共享云端硬盘的文件填充以下字段:

  • capabilities.canTrashChildren:当前用户是否可以将子节点删除 此文件夹的名称如果内容不是文件夹,则此字段为 false。
  • capabilities.canDeleteChildren:当前用户是否可以删除 所有子文件夹。如果内容不是文件夹,则此字段为 false。

文件和文件夹限制

云端硬盘文件和文件夹以及共享云端硬盘文件夹 有一些存储空间限制。

一般来说,在达到内容上限后,腾出更多空间的唯一方式是 永久删除某些内容或使用 其他账号。将文件移至回收站并不足以释放空间。

如需详细了解文件和文件夹限制,请参阅以下内容: