0

我正在尝试列出其他用户 OneDrive 中的所有文件。

我正在打电话GET /users/{user-id}/drive/items/{item-id}/children,但我的问题是我不知道如何获得{item-id}.

我尝试使用https://graph.microsoft.com/v1.0/users/{userid}/drives,但它没有显示任何项目 ID。

随后,一旦我得到 id,我将使用 copy 命令POST /users/{userId}/drive/items/{itemId}/copy复制项目。

4

2 回答 2

0

如果您不知道 的 ID 或路径,则DriveItem需要从 的根目录开始Drive并遍历文件夹结构,直到找到您要查找的文件。

您的第一个电话是 to /users/{id|userPrincipalName}/drive/root/children?$select=id,name,folder,file。这将列出 文件夹中子项的id,namefolderorfile数据(取决于项目类型) :root

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('id')/drive/root/children(id,name,folder,file)",
    "value": [
        {
            "@odata.etag": "\"{etag},1\"",
            "id": "folderId",
            "name": "My Folder",
            "folder": {
                "childCount": 10
            }
        },
        {
            "@odata.etag": "\"{etag},1\"",
            "id": "fileId",
            "name": "filename.ext",
            "file": {
                "mimeType": "type",
                "hashes": {
                    "quickXorHash": "hash"
                }
            }
        }
    ]
}

然后,您对每个文件夹执行相同的调用以获取它们的子文件夹,重复该模式直到找到您要查找的文件:

/users/{id|userPrincipalName}/drive/items/{folderId}/children?$select=id,name,folder,file`

或者,您可以简单使用/users/{id|userPrincipalName}/drive/root/search(q='{search-text}').

于 2020-04-07T19:49:34.763 回答
0

您可能需要查询 root 以获取文件/文件夹的 childID

GET https://graph.microsoft.com/v1.0/users/{user-id}/drive/root/children
于 2020-04-06T16:01:39.297 回答