IOS:如何使用Google drive sdk库将文件上载到特定的Google drive文件夹

IOS:如何使用Google drive sdk库将文件上载到特定的Google drive文件夹,ios,google-drive-api,Ios,Google Drive Api,我将Google drive sdk与iOS应用程序集成。但我不知道如何将文件上传到谷歌硬盘的特定文件夹 这里是我用来上传文件的代码。但这一个上传文件到我的谷歌驱动器根文件夹。任何人都可以共享一个代码,将文件上传到谷歌硬盘的特定文件夹 我的代码: -(void)uploadFileToGoogleDrive:(NSString*)fileName { GTLDriveFile *driveFile = [[[GTLDriveFile alloc]init] autorelease];

我将Google drive sdk与iOS应用程序集成。但我不知道如何将文件上传到谷歌硬盘的特定文件夹

这里是我用来上传文件的代码。但这一个上传文件到我的谷歌驱动器根文件夹。任何人都可以共享一个代码,将文件上传到谷歌硬盘的特定文件夹

我的代码:

-(void)uploadFileToGoogleDrive:(NSString*)fileName
{    
GTLDriveFile *driveFile = [[[GTLDriveFile alloc]init] autorelease];

driveFile.mimeType = @"application/pdf";
driveFile.originalFilename = @"test.doc";
driveFile.title = @"test.doc";

NSString *filePath = [LocalFilesDetails getUserDocumentFullPathForFileName:fileName isSignedDocument:YES];

GTLUploadParameters *uploadParameters = [GTLUploadParameters
                                         uploadParametersWithData:[NSData dataWithContentsOfFile:filePath]
                                         MIMEType:@"application/pdf"];    

GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:driveFile
                                    uploadParameters:uploadParameters];

[self.driveService executeQuery:query 
  completionHandler:^(GTLServiceTicket *ticket,
                       GTLDriveFile *updatedFile,
                       NSError *error) {
    if (error == nil) {
        NSLog(@"\n\nfile uploaded into google drive\\<my_folder> foler");
    } else {
        NSLog(@"\n\nfile uplod failed google drive\\<my_folder> foler");            
    }
}];
}
-(void)上传文件到日志驱动:(NSString*)文件名
{    
GTLDriveFile*driveFile=[[GTLDriveFile alloc]init]autorelease];
driveFile.mimeType=@“application/pdf”;
driveFile.originalFilename=@“test.doc”;
driveFile.title=@“test.doc”;

NSString*filePath=[LocalFileDetails getUserDocumentFullPathForFileName:fileName isSignedDocument:YES]; GTLUploadParameters*上传参数=[GTLUploadParameters] uploadParametersWithData:[NSData DATA WITHCONTENTS OFFILE:filePath] MIMEType:@“application/pdf”]; GTLQueryDrive*query=[GTLQueryDrive queryforfilesinertwithobject:driveFile uploadParameters:uploadParameters]; [self.driveService executeQuery:查询 completionHandler:^(GTLServiceTicket*票据, GTLDriveFile*更新文件, N错误*错误){ 如果(错误==nil){ NSLog(@“\n\n文件上载到google drive\\foler”); }否则{ NSLog(@“\n\n文件上传失败谷歌驱动器\\foler”); } }]; }
我不懂iOS,所以可能会出错,但这段代码是否来自帮助


您需要设置
driveFile
引用的
parents
属性

GTLDriveParentReference *parentRef = [GTLDriveParentReference object];
parentRef.identifier = folderIdentifier; // identifier property of the folder
driveFile.parents = @[ parentRef ];

GTLServiceTicket*_editFileListTicket

    GTLServiceDrive *service = self.driveService;

    GTLDriveFile *folderObj = [GTLDriveFile object];

    folderObj.title = [NSString stringWithFormat:@"%@", title];

    folderObj.mimeType = @"application/vnd.google-apps.folder";

    GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:folderObj
                                                       uploadParameters:nil];
    _editFileListTicket = [service executeQuery:query
                              completionHandler:^(GTLServiceTicket *ticket,
                                                  GTLDriveFile *folderItem,
                                                  NSError *error) {

                                 if (error == nil)
                                 {

                                     UIAlertView *alert=[[UIAlertView alloc] initWithTitle:nil message:@"Created" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                     [alert show];


                                    }
                                 else
                                 {

                                     NSLog(@"error");

                                  }
                              }];

我也查看了这段代码,但他们没有在代码中使用“parentId”参数。还有其他想法吗?我从哪里获得我需要的文件夹的
parentId
?我如何知道folderIdentifier?@ValeriyVan你可以从文件夹中获得它。想必您会做一个更早的查询,给您一个文件夹列表。@rmaddy,我在哪里可以看到这个?Google关于Google Drive API的文档并没有简单而直接地回答诸如“如果我知道文件夹名称,如何将文件保存在特定文件夹中”之类的简单问题。您没有找到这个
[NSString stringWithFormat:@“%@”,title]有趣?为什么不干脆
title
?NSString*文件路径=[LocalFileDetails getUserDocumentFullPathForFileName:fileName isSignedDocument:YES];如何添加localfilesdetails@GamiNilesh忘记了LocalFileDetails,只需在filePath变量中传递文件数据存储路径。那很好
    GTLServiceDrive *service = self.driveService;

    GTLDriveFile *folderObj = [GTLDriveFile object];

    folderObj.title = [NSString stringWithFormat:@"%@", title];

    folderObj.mimeType = @"application/vnd.google-apps.folder";

    GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:folderObj
                                                       uploadParameters:nil];
    _editFileListTicket = [service executeQuery:query
                              completionHandler:^(GTLServiceTicket *ticket,
                                                  GTLDriveFile *folderItem,
                                                  NSError *error) {

                                 if (error == nil)
                                 {

                                     UIAlertView *alert=[[UIAlertView alloc] initWithTitle:nil message:@"Created" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                     [alert show];


                                    }
                                 else
                                 {

                                     NSLog(@"error");

                                  }
                              }];