检索/ drive子列表的文件类型

时间:2016-02-27 10:06:03

标签: office365 microsoft-graph

对于v1.0 Graph API端点/drive/root/children,是否可以返回每个文件的类型?即,微软word文件vs excel vs onenote(等)?

2 个答案:

答案 0 :(得分:0)

来自the docs

  

以下是回复的示例。

     

HTTP / 1.1 200 OK内容类型:application / json

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

Microsoft使用文件扩展名来标识文件夹。匹配文件扩展名应该足够好。一个警告:文件可能没有扩展名或错误的文件。在这种情况下,有必要读取文件的文件类型。例如,位图文件以BM和可执行文件MZ开头。可能还有其他方法可以识别文件类型。由于Office迁移到基于XML的文件,您可以从XML Schema或doctype中分辨出来。

可以通过标记为嵌套的JSON对象的文件夹来标识文件夹。还有一些对您无用的其他详细信息。

“@ odata.nextLink”字段启用分页。转到该URL会显示更多文件而不会耗尽资源。

答案 1 :(得分:0)

OneDrive API通过在项目上使用属性来支持以下文件类型识别:

  • 文件
  • 文件夹
  • 照片(用相机拍摄)
  • 图片(位图)
  • 音频
  • 视频

这些都是通过查看项目上的相应属性是null还是null来确定的。我们将此数据模型称为“方面”方法,因为该项目包含多个方面,表示您可以处理该项目的方式。

如果您更关心粒度,可以检查文件属性是否为null,然后检查文件扩展名以确定文件类型。

OneDrive Personal还包括对item.file.mimeType属性中文件的MIME类型的猜测。这可以在某些场景中用于更好地理解文件类型而无需解析扩展。