Как запросить 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
важно, если вы не хотите, чтобы найденные файлы были найдены.