如何检查文件是属于我的云端硬盘还是属于团队云端硬盘
How to check whether the file belongs to My Drive or Team Drive
有没有更省时的方法来检查文件的根目录是"My Drive"还是"Team Drive"?
我试过使用 file.getParents();
然后遍历每个父级,最后到 Root,但这太耗时了。
当文件在团队云端硬盘中时,所有者是团队云端硬盘,而不是任何特定用户。
您可以检查该文件的所有权,如果它设置为空,则该文件可能位于团队云端硬盘中。
var file = DriveApp.getFileById("fileID");
if (file.getOwner() === null) {
// do something here
}
如果您使用的是Drive
高级服务,您可以直接查询Team 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 的字段。
缺席:
- 所有者姓名
- 所有者
- 作家可以分享
- 共享
- 权限
- folderColorRgb
- ownedByMe
现在:
- teamDriveId
- hasAugmentedPermissions
- capabilities/canMoveTeamDriveItem
- capabilities/canReadTeamDrive
- 垃圾用户
- 垃圾处理日期
参考文献:
有没有更省时的方法来检查文件的根目录是"My Drive"还是"Team Drive"?
我试过使用 file.getParents();
然后遍历每个父级,最后到 Root,但这太耗时了。
当文件在团队云端硬盘中时,所有者是团队云端硬盘,而不是任何特定用户。
您可以检查该文件的所有权,如果它设置为空,则该文件可能位于团队云端硬盘中。
var file = DriveApp.getFileById("fileID");
if (file.getOwner() === null) {
// do something here
}
如果您使用的是Drive
高级服务,您可以直接查询Team 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 的字段。
缺席:
- 所有者姓名
- 所有者
- 作家可以分享
- 共享
- 权限
- folderColorRgb
- ownedByMe
现在:
- teamDriveId
- hasAugmentedPermissions
- capabilities/canMoveTeamDriveItem
- capabilities/canReadTeamDrive
- 垃圾用户
- 垃圾处理日期
参考文献: