对于v1.0 Graph API端点/drive/root/children
,是否可以返回每个文件的类型?即,微软word文件vs excel vs onenote(等)?
答案 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类型的猜测。这可以在某些场景中用于更好地理解文件类型而无需解析扩展。