Основываясь на документации Microsoft Graph REST API , у нас есть код 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} "возвращает пару файлов, я понятия не имею, почему
- Поиск« filename: A »ничего не возвращает, хотя у меня есть несколько файлов, которые содержат« A »в своем имени
Я хочу найти все файлы, чье имя содержит определенную подстроку, но если я ищу «*» или «filename: A *» или «filename: A% 2A», он генерирует исключение ServiceException с кодом UnknownError.
Вопрос 1 : Как передать шаблон в функцию Search ()?
Затем, когда я получаю результаты, это Microsoft.Graph.DriveItemSearchCollectionPage
, я могу перечислить черезэто и получить кучу DriveItem
объектов. У DriveItem
есть свойство с именем «Папка», которое иногда ненулевое , но это объект типа Microsoft.Graph.Folder
, и Intellisense указывает, что нет способа получить имя папки. И текущая версия Visual Studio Mac не работает, если я щелкну правой кнопкой мыши по папке и выберу «Перейти к объявлению», она сразу же зависнет и использует 100% ЦП и никогда не вернется, мне нужно принудительно завершить работу.
Вопрос 2 : Как получить имя папки, когда у меня есть Microsoft.Graph.Folder
?