Поиск файлов/папок внутри файлов Google Диска xcode

Я пытаюсь создать приложение для управления файлами Google Drive в iOS. Я застрял, потому что я хочу искать все файлы, используя любое ключевое слово, и это должны быть файлы и папки отображения. Получите все файлы и папки, используя этот код. Но если вы что-то ищете, ищите только текущий файл. Можете ли вы предложить мне, как получить подфайлы и папки, потому что они отображаются только на одном уровне, а не на других.
-(void)getGDriveFilesAndFolders {

GTLQueryDrive *query = [GTLQueryDrive queryForFilesList];
if ([self.strPath length] == 0)
{
    query.q = @"'root' in parents";
}else{
    NSString *queryString = [NSString stringWithFormat:@"'%@' in parents",self.strPath];
    query.q=queryString;
}

[GoogleDriveViewController.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,GTLDriveFileList *files,NSError *error)
 {
     if (error == nil)
     {
         [marrFiles removeAllObjects];

         NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
         [dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

         for(int i = 0; i < [files items].count; i++)
         {
             GTLDriveFile *driveFile = (GTLDriveFile*)[files itemAtIndex:i];
             if([driveFile.mimeType isEqualToString:@"application/vnd.google-apps.folder"])
             {
                 if([driveFile.explicitlyTrashed intValue]!=1)
                 {
                     NSString *fileName = driveFile.title;
                     NSMutableDictionary *dict = [NSMutableDictionary dictionary];
                     [dict setValue:fileName forKey:[NSString stringWithFormat:@"Folder"]];
                     [dict setValue:driveFile.identifier forKey:@"objectId"];
                     [marrFiles addObject:dict];
                 }
             }
             else{
                 if([driveFile.explicitlyTrashed intValue] != 1)
                 {
                     NSString *fileName = driveFile.title;
                     NSMutableDictionary *dict = [NSMutableDictionary dictionary];
                     [dict setValue:fileName forKey:[NSString stringWithFormat:@"File"]];
                     long long int sizeData = [driveFile.fileSize intValue];
                     NSString *stringSize = [FileSizeClass stringSizeForFileWithBytes:[NSNumber numberWithLongLong:sizeData]];
                     GTLDateTime *modificationDate = (GTLDateTime*)driveFile.modifiedDate;
                     NSDate *date = [modificationDate date];
                     NSString *dateString = [dateFormatter stringFromDate:date];
                     dateString = [dateString createdTimeString];
                     NSString *stringInfo = [NSString stringWithFormat:@"%@ %@",stringSize,dateString];
                     [dict setValue:stringInfo forKey:[NSString stringWithFormat:@"Size"]];
                     [dict setValue:driveFile.identifier forKey:@"objectId"];
                     [dict setValue:driveFile.downloadUrl forKey:@"downloadUrl"];
                     [dict setValue:driveFile.fileSize forKey:@"FileSize"];

                     if(driveFile.webContentLink)
                     {
                         [dict setValue:driveFile.webContentLink forKey:@"webContentLink"];
                     }
                     [marrFiles addObject:dict];
                 }
             }
         }
         [tblGoogleDrive reloadData];
     } else {
         UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:NSLocalizedString(@"Message",nil) message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
         [alertView show];
     }
     [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
 }];

}


person Priya    schedule 21.05.2014    source источник
comment
Не понятно, что вы просите. Чего вы хотите и что сейчас делает ваш код?   -  person Eric Koleda    schedule 31.05.2014
comment
Этот код просто перечисляет файлы и папки в виде таблицы. Используя контроллер отображения поиска, он ищет только текущие файлы и папки, которые находятся в таблице. Я должен отображать файлы внутри файлов. например папка1 -> f1.txt, f2.txt. Проблема в том, что когда вы что-то ищете, отображаются только текущие файлы или папки. когда вы ищете f1, он показывает, что не найден. это означает, что этот код предназначен для текущих файлов и папок, а не для подфайлов и подпапок. Итак, что я должен сделать, чтобы получить какие-либо файлы внутри любого места?   -  person Priya    schedule 02.06.2014


Ответы (1)


Использование поискового запроса, такого как 'folder id' in parents, ищет только прямые дочерние элементы этой папки, а не внутри подпапок. Встроенного способа поиска во вложенных папках нет, но вы можете создать составной запрос, в котором вы выполняете поиск в каждой вложенной папке явно, например 'folder' in parents or 'sub-folder1' in parents ...

person Eric Koleda    schedule 03.06.2014