Как запросить Google Диск для идентификатора папки с известным именем в корневой папке (Google Drive SDK для iPhone)?

С запросом

GTLQueryDrive *queryFilesList = [GTLQueryDrive queryForChildrenListWithFolderId:@"root"];

Я получаю все в корневой папке: файлы и папки. Конечно, я могу найти папку в GTLDriveChildList. Но в корневой папке могут быть тысячи элементов, и мне нужен только один из них. Я попробовал узкий поиск. Комментарии в GTLQueryDrive.h говорят, что это возможно. Я пробовал

queryFilesList.q = @"mimeType='application/vnd.google-apps.folder'";

запрашивать только папки или

queryFilesList.q = [NSString stringWithFormat:@"title='%@'", folderName];

для запроса всех элементов по имени. Оба запроса возвращают пустые списки. Двойная проверка: папка, которую я ищу, действительно существует.

Я пробовал

GTLQueryDrive *queryFilesList = [GTLQueryDrive queryForFilesList];

Он хорошо работает с

queryFilesList.q =  @"mimeType='audio/x-aiff'";

Но возвращает пустой список, если я пытаюсь запросить только папки с

queryFilesList.q =  @"mimeType='application/vnd.google-apps.folder'";

Что я делаю неправильно?

Ответ 1

Я эгоистичный идиот!

GTLQueryDrive *queryFilesList = [GTLQueryDrive queryForChildrenListWithFolderId:@"root"];
queryFilesList.q = @"mimeType='application/vnd.google-apps.folder'";

работает отлично, но он видит ТОЛЬКО папки, созданные с помощью этого приложения! Это была моя проблема. Если быть точным, вы можете использовать этот запрос:

queryFilesList.q = @"mimeType='application/vnd.google-apps.folder' and 'root' in parents and trashed=false";

trashed=false важно, если вы не хотите, чтобы найденные файлы были найдены.