0

有没有更省时的方法来检查文件的根目录是“我的驱动器”还是“团队驱动器”?

我尝试过使用file.getParents();然后遍历每个父级,最后到 Root,但这太耗时了。

4

2 回答 2

3

当文件在团队云端硬盘中时,所有者是团队云端硬盘,而不是任何特定用户。

您可以检查文件的所有权,如果将其设置为 null,则该文件可能位于团队云端硬盘中。

var file = DriveApp.getFileById("fileID");
if (file.getOwner() === null) {
  // do something here
}
于 2018-06-06T06:15:59.127 回答
2

如果您正在使用Drive高级服务,您可以直接查询团队云端硬盘信息:

例子:

function getTeamDriveId(fileId) {
  const options = {
    fields: "id,title,teamDriveId",
  };
  const file = Drive.Files.get(fileId, options);
  return file.teamDriveId;
}

对于不在团队云端硬盘中的文件,上述 id 将为 false-y。

有几个元数据字段可供查询,这些字段仅存在或不存在于团队云端硬盘项目中。请务必注意您使用的 API 版本,因为资源名称在 2 和 3 之间发生了变化。在测试是否存在Boolean字段或其他可能为 false-y 的字段时,使用严格的比较也很重要。

缺席的:

  • 所有者姓名
  • 拥有者
  • writersCanShare
  • 共享
  • 权限
  • 文件夹ColorRgb
  • 归我所有

当下:

  • teamDriveId
  • hasAugmentedPermissions
  • 能力/canMoveTeamDriveItem
  • 能力/canReadTeamDrive
  • 垃圾用户
  • 垃圾日期

参考:

于 2018-06-06T11:13:54.253 回答