OneDrive:如何确定文件是否位于用户的顶层? OneDrive目录?

时间:2014-12-24 19:31:23

标签: onedrive

我正在尝试在OneDrive中找到特定文件的位置。

我正在使用/ search REST API执行此操作。

如果我搜索文件名并且文件存在于三个位置,我会得到结果中所有三个文件的parent_id,即使其中一个位置是根目录。

如果我随后在根目录的parent_id上查询文件数据,我会得到404。

对于根目录中的文件,parent_id不应为null吗?

有没有办法知道将作为404返回的路径ID对应于根目录?

1 个答案:

答案 0 :(得分:2)

在应用启动时,请执行以下查询:

https://apis.live.net/v5.0/me/skydrive

这将返回一个关于根文件夹的小json blob,包括它的“id”成员。根目录中的所有文件都应具有parent_id的相同ID。我的例子:

GET https://apis.live.net/v5.0/me/skydrive
200 OK
{
   "id": "folder.1234567812345678", 
   ...
   "name": "SkyDrive", 
   "description": "", 
   "parent_id": null, 
   "size": 17656182301, 
   "upload_location": "https://apis.live.net/v5.0/folder.1234567812345678/files/", 
   ...
} 

这就是你如何检测根文件夹的ID。根文件夹有一个id,但它的parent_id当然是 null

  

如果我随后在根目录的parent_id上查询文件数据,我会得到404。

如果我调用它,那很奇怪:

GET https://apis.live.net/v5.0/folder.1234567812345678/files

我得到的结果与我查询/me/skydrive/files

的结果相同

我怀疑您的网址格式错误。当您调用返回404的调用时,URL会是什么样子?