按名称获取特殊文件夹

使用特殊集合可以按名称访问特殊文件夹。

特殊文件夹可以提供简单别名来访问 OneDrive 中的已知文件夹,无需按路径查找(需要本地化)或通过 ID 引用文件夹。如果特殊文件夹被重命名或移到驱动器中的其他位置,此语法将继续查找该文件夹。

应用程序第一次尝试向特殊文件夹中写入内容时,如果特殊文件夹不存在,系统会自动创建特殊文件夹。如果用户删除某个特殊文件夹,再次向其写入内容时会重新创建特殊文件夹。

注意: 如果你拥有只读权限并且请求不存在的特殊文件夹,将收到 403 Forbidden 错误。

权限

要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) Files.Read、Files.ReadWrite、Files.Read.All、Files.ReadWrite.All、Sites.Read.All、Sites.ReadWrite.All
委派(个人 Microsoft 帐户) Files.ReadWrite.AppFolder、Files.Read、Files.ReadWrite、Files.Read.All、Files.ReadWrite.All、Sites.Read.All、Sites.ReadWrite.All
应用程序 Files.Read.All、Files.ReadWrite.All、Sites.Read.All、Sites.ReadWrite.All

HTTP 请求

GET /me/drive/special/{special-folder-name}

特殊文件夹名称

以下是 OneDrive 和 OneDrive for Business 中可用的特殊文件夹名称。

名称 文件夹 ID 说明
App Root approot 应用程序的个人文件夹。通常位于 /Apps/{Application Name}
Camera Roll cameraroll “本机照片备份”文件夹。
桌面 desktop 桌面文件夹。
Documents documents “文档”文件夹。
Music music “音乐”文件夹。
Photos photos “照片”文件夹。

可选的查询参数

此方法支持使用 $expand$select OData 查询参数自定义响应。

HTTP 响应

此方法在响应正文中返回 200 OK 响应代码和 driveItem 对象。

可以将此处理特殊文件夹内联的方法与对 driveItem 上的属性或关系的其他调用结合使用。

HTTP/1.1 200 OK
Content-type: application/json

{
  "id": "0123456789abc",
  "name": "Documents",
  "eTag": "012345819293.1",
  "specialFolder": {
    "name": "documents"
  }
}

获取特殊文件夹的子文件夹

若要请求特殊文件夹的子文件夹,则可以请求 children 集合,或使用 expand 选项展开子集合。

HTTP 请求

GET /me/drive/special/{special-folder-name}/children

HTTP 响应

HTTP/1.1 200 OK
Content-Type: application/json

{
  "value": [
    {"name": "myfile.jpg", "size": 2048 },
    {"name": "Documents", "folder": { "childCount": 4} },
    {"name": "Photos", "folder": { "childCount": 203} },
    {"name": "my sheet(1).xlsx", "size": 197 }
  ]
}

说明

注意: 带有 specialFolder facet 的 DriveItem 指示项目是特殊文件夹,且可以通过 special 集合访问。

如果应用拥有只读权限,且特殊文件夹尚不存在,那么可能无法请求获取特殊文件夹或其子项,响应为 404 Not Found403 Forbidden 错误。