是否有可能获得OneDrive项目的完整路径?

时间:2018-08-09 20:17:18

标签: microsoft-graph onedrive

我在C#项目中使用MS Graph SDK在人们的OneDrive中搜索文件和文件夹中的特定术语。当我找到一个时,还没有找到获取DriveItem完整路径的方法?

不是URL路径,而是拥有用户在本地存储文件的文件系统路径。

这可能吗?

2 个答案:

答案 0 :(得分:1)

例如,当您请求驱动器项的元数据时,您会收到:

{
    "@microsoft.graph.downloadUrl": "https://m365x214355-my.sharepoint.com/personal/meganb_m365x214355_onmicrosoft_com/_layouts/15/download.aspx?UniqueId=c8b43b37-bc76-4352-af27-5a8e9f1bbfeb&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvbTM2NXgyMTQzNTUtbXkuc2hhcmVwb2ludC5jb21AZGNkMjE5ZGQtYmM2OC00YjliLWJmMGItNGEzM2E3OTZiZTM1IiwiaXNzIjoiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwIiwibmJmIjoiMTUzMzg5NzE3MiIsImV4cCI6IjE1MzM5MDA3NzIiLCJlbmRwb2ludHVybCI6IitjMlZ4YU9UY2hCSEhmK3hyNlhrMExtd0pRMEhQR0hYMmlKaTBMRldhTHM9IiwiZW5kcG9pbnR1cmxMZW5ndGgiOiIxNjkiLCJpc2xvb3BiYWNrIjoiVHJ1ZSIsImNpZCI6Ik16VTVOVFkyWVRjdFlqazVOeTAwWlRsa0xUZ3hNV1V0TlRNMU5UZGhaRGc0WkdVeSIsInZlciI6Imhhc2hlZHByb29mdG9rZW4iLCJzaXRlaWQiOiJaRGd5TXpFeVpqa3RZakl6WWkwMFkySmpMVGsxWkRVdE0yVXdaRGswWlRZNFl6RmwiLCJhcHBfZGlzcGxheW5hbWUiOiJhcGlzYW5kYm94cHJveHkiLCJhcHBpZCI6IjAwOTFlNTllLTE3ZTgtNDdmMC1hNDUwLTQ0M2Q0ZGQzYTAwNiIsInRpZCI6ImRjZDIxOWRkLWJjNjgtNGI5Yi1iZjBiLTRhMzNhNzk2YmUzNSIsInVwbiI6Im1lZ2FuYkBtMzY1eDIxNDM1NS5vbm1pY3Jvc29mdC5jb20iLCJwdWlkIjoiMTAwM0JGRkRBMzgxMzFBRiIsInNjcCI6ImFsbHNpdGVzLnJlYWQgbXlmaWxlcy5yZWFkIGdyb3VwLnJlYWQgbXlmaWxlcy5yZWFkIGFsbHNpdGVzLnJlYWQgYWxsc2l0ZXMucmVhZCBteWZpbGVzLnJlYWQgYWxscHJvZmlsZXMucmVhZCBhbGxwcm9maWxlcy5yZWFkIiwidHQiOiIyIiwidXNlUGVyc2lzdGVudENvb2tpZSI6bnVsbH0.eWQzcTFxNmhBb0txNFNnZzQyNlIyU2gzaUQwSGJxbC9abWRlVVZ3OGUwMD0&ApiVersion=2.0",
    "createdDateTime": "2017-08-07T16:17:44Z",
    "eTag": "\"{C8B43B37-BC76-4352-AF27-5A8E9F1BBFEB},2\"",
    "id": "01BYE5RZZXHO2MQ5V4KJB26J22R2PRXP7L",
    "lastModifiedDateTime": "2017-08-07T16:17:44Z",
    "name": "Camera Customer Analysis.xlsx",
    "webUrl": "https://m365x214355-my.sharepoint.com/personal/meganb_m365x214355_onmicrosoft_com/_layouts/15/Doc.aspx?sourcedoc=%7BC8B43B37-BC76-4352-AF27-5A8E9F1BBFEB%7D&file=Camera%20Customer%20Analysis.xlsx&action=default&mobileredirect=true",
    "cTag": "\"c:{C8B43B37-BC76-4352-AF27-5A8E9F1BBFEB},1\"",
    "size": 2675045,
    "createdBy": {
        "user": {
            "email": "MeganB@M365x214355.onmicrosoft.com",
            "id": "48d31887-5fad-4d73-a9f5-3c356e68a038",
            "displayName": "Megan Bowen"
        }
    },
    "lastModifiedBy": {
        "user": {
            "email": "MeganB@M365x214355.onmicrosoft.com",
            "id": "48d31887-5fad-4d73-a9f5-3c356e68a038",
            "displayName": "Megan Bowen"
        }
    },
    "parentReference": {
        "driveId": "b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd",
        "driveType": "business",
        "id": "01BYE5RZ6TAJHXA5GMWZB2HDLD7SNEXFFU",
        "path": "/drive/root:/CR-227 Project"
    },
    "file": {
        "mimeType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        "hashes": {
            "quickXorHash": "qz9+NLaGwZCFBcd9gH+HCNUVcn8="
        }
    },
    "fileSystemInfo": {
        "createdDateTime": "2017-08-07T16:17:44Z",
        "lastModifiedDateTime": "2017-08-07T16:17:44Z"
    }
}

如您所见,它包含一个parentReference,其中包含path 要获取完整路径,请从第一个path开始对:进行子字符串化,并附加name。 在上面的示例中,它将给出:/CR-227 Project/Camera Customer Analysis.xlsx

Doc reference

但是,Microsoft不会存储用户在本地存储文件的本地路径。但是您可以重现它,因为OneDrive文件结构将与本地文件结构相同。

答案 1 :(得分:1)

根据我的测试,我们无法使用Graph API来获取OneDrive本地文件系统的根目录。我们只能获取OneDrive项目的相对路径。

我的测试配置:本地存储目录:C:/ onedrive。该文件存储在“ C:/ onedrive / Test Floder /”中。我们只能得到“路径/ drive / root:Test”。 enter image description here

再现步骤: 我们可以尝试使用以下API,首先获取用户的OneDrive设置的相对路径: https://graph.microsoft.com/v1.0/me/drive/items/ {item-id} / children。 然后,您可以将用户设置的文件系统路径与从API获得的相对路径进行缝合。

我们可以在本地系统上为OneDrive设置不同的文件系统路径。您可以参考本文设置OneDrive的本地存储位置。