【问题标题】:Microsoft Graph - Searching OneDriveMicrosoft Graph - 搜索 OneDrive
【发布时间】: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}”可以是什么的文档。通过反复试验,看来:

  1. 搜索“A”会查找名称或内容中包含“A”的所有文件
  2. 搜索“{search-query}”会返回几个文件,我不知道为什么
  3. 即使我有一些文件名中包含“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


    【解决方案1】:

    我不熟悉云端硬盘搜索查询语法。

    可以说,当Folder属性为非空时,表示DriveItem是一个文件夹。您将使用 DriveItem.Name 来获取文件夹的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多