基于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}”的文档。通过反复试验,看来:
我要搜索名称中包含某个子字符串的所有文件,但是如果我搜索“ *”或“ filename:A *”或“ filename:A%2A”,则会引发ServiceException,代码为UnknownError。 / p>
问题1 :如何将通配符传递给Search()函数?
然后,当我得到结果时,它就是一个Microsoft.Graph.DriveItemSearchCollectionPage
,我可以通过它来枚举并得到一堆DriveItem
对象。 DriveItem
有一个名为“文件夹”的属性,有时为非空,但它是类型为Microsoft.Graph.Folder
的对象,并且Intellisense表示无法获取名称。夹。而且当前版本的Visual Studio Mac有点麻烦,如果我右键单击一个文件夹并选择“转到声明”,它将立即挂起并使用100%CPU,并且永不返回,我必须强制退出。
问题2 :当我拥有Microsoft.Graph.Folder
时如何获取文件夹的名称?
答案 0 :(得分:0)
我对云端硬盘搜索查询语法不熟悉。
我可以说,如果Folder属性为非null,则表明DriveItem是一个文件夹。您将使用DriveItem.Name获取文件夹的名称。