【发布时间】:2021-01-05 17:32:00
【问题描述】:
我在 MSGraph 中有以下(基于 kotlin/java 的)查询
var driveItemSearchCollectionRequestBuilder =
safeGraphServiceClient
.sites(SHAREPOINT_SITE_ID)
.drive()
.root()
.search("¤A=118628")
do{
driveItemSearchCollectionPage = driveItemSearchCollectionRequestBuilder?.buildRequest()?.get()?:break
driveItemSearchCollectionPage.currentPage.map {driveItem->
driveItem?.let{ safeDriveItem ->
//Here I need to find my `safeDriveItem`'s (which is a file) path (where the file is stored)... (or folder)
//`safeDriveItem.folder` is null... (since this is a file)
}
}
driveItemSearchCollectionRequestBuilder = driveItemCollectionPage.nextPage
}while(driveItemSearchCollectionRequestBuilder!=null)
这会产生一组(页面)驱动项。此搜索可以在我的共享点树的任何文件夹中找到该文件。我在哪里(或如何)可以找到 drivItem 文件的文件夹(即 '\MyFolder\Level1\Level2\Level3')? (这里的 driveItem 的文件夹项目是null,我还没有找到包含它的任何值)。还是我需要做一些“聪明”的回溯?
【问题讨论】:
-
当您使用上述代码进行搜索时,正如您所说,您将获得 driveItems。选择您想要文件夹路径的 driveItem 的 id,然后调用
https://graph.microsoft.com/v1.0/sites/{siteid}/drive/Items/{driveItemid}这将拉取整个驱动器项目对象,该对象具有parentReferrence内部具有路径属性的对象。 -
它对你有用吗?
-
其实,我现在只是去测试一下...给我一些咖啡杯...
-
谢谢,测试了它,我可以从辅助查询中提取路径。为什么 MGraph 不在我的主要搜索请求中填充该值,或者我需要在搜索中添加一些参数?我会用你上面的建议来回答我的问题,quute 已经解决了。
-
我将在您的后续问题中添加答案。请接受它:)-
标签: java android kotlin microsoft-graph-api