【发布时间】:2019-10-03 19:31:42
【问题描述】:
基于Microsoft Graph REST API documentation,我们的 Xamarin/C# 代码如下所示:
var graphClient = new GraphServiceClient(
new DelegateAuthenticationProvider(
(requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
return (Task.FromResult(0));
}
));
IDriveItemSearchCollectionPage search = await graphClient.Me.Drive.Root
.Search("{search-query}")
.Request()
.GetAsync();
问题是,我找不到任何关于“{search-query}”可以是什么的文档。通过反复试验,看来:
- 搜索“A”会查找名称或内容中包含“A”的所有文件
- 搜索“{search-query}”会返回几个文件,我不知道为什么
- 即使我有一些文件名中包含“A”,搜索“filename:A”也不会返回任何结果
我想搜索名称中包含某个子字符串的所有文件,但如果我搜索“*”或“文件名:A*”或“文件名:A%2A”,它会抛出带有代码 UnknownError 的 ServiceException。
问题 1:如何将通配符传递给 Search() 函数?
然后,当我得到结果时,它是一个Microsoft.Graph.DriveItemSearchCollectionPage,我可以通过它枚举并得到一堆DriveItem 对象。 DriveItem 有一个名为“Folder”的属性,该属性有时非空,但它是Microsoft.Graph.Folder 类型的对象,并且 Intellisense 指示无法获取文件夹的名称。而且当前版本的 Visual Studio Mac 很麻烦,如果我右键单击一个文件夹并选择“转到声明”它会立即挂起并使用 100% CPU 并且永远不会返回,我必须强制退出。
问题 2:当我有 Microsoft.Graph.Folder 时,如何获取文件夹的名称?
【问题讨论】:
标签: c# sharepoint microsoft-graph-api