Получить все папки в OneDrive с помощью Microsoft Graph API - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь получить все папки в Onedrive (не файлы), используя Graph API. Я ищу запрос, аналогичный приведенному ниже запросу:

var folders=await client.Me.Drive.Root.Children.Request().GetAsync();

Приведенный выше запрос извлекает как файлы, так и папки, и я ищу только папки.

Заранее спасибо.

1 Ответ

0 голосов
/ 28 апреля 2020

Чтобы получить только папки в группе, в каждом объекте drivenItem есть свойство, называемое «Папка», которое можно использовать для определения того, является ли этот конкретный объект drivenItem файлом или папкой. Если этот объект - папка, то значение в нем не будет нулевым. Если это файл, то определенно свойство Folder имеет значение null.

public static async Task<IEnumerable<DriveItem>> GetOnlyFolders()
{
      var folders = await graphClient.Me.Drive.Root.Children
      .Request()
      .GetAsync();

       return folders.CurrentPage;
}
static void OnlyFolders()
{
      var result = GraphHelper.GetOnlyFolders().Result;
      foreach (var item in result)
      {
          if(item.Folder != null)
          {
               Console.WriteLine(item.Name);
          }
      }
}

Протестировано в моем приложении и получено, как показано ниже.

My OneDrive: - Пожалуйста, нажмите на эту ссылку, чтобы см. мой единственный диск

Мое приложение после применения кода: - Пожалуйста, нажмите на эту ссылку, чтобы просмотреть папки

...