Ios8 如何在google drive上编写由我创建的文件夹

Ios8 如何在google drive上编写由我创建的文件夹,ios8,google-drive-api,xcode6,Ios8,Google Drive Api,Xcode6,我被要求将发送到Google Drive帐户的文件写入使用下面代码创建的预定义文件夹 (void) createGoogleFolder { GTLDriveFile *folder = [GTLDriveFile object]; folder.title = @"ICA Voice Memo"; folder.mimeType = @"application/vnd.google-apps.folder"; GTLQueryDrive *query = [G

我被要求将发送到Google Drive帐户的文件写入使用下面代码创建的预定义文件夹

(void) createGoogleFolder
{
    GTLDriveFile *folder = [GTLDriveFile object];
    folder.title = @"ICA Voice Memo";
    folder.mimeType = @"application/vnd.google-apps.folder";

    GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:folder uploadParameters:nil];
   [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                              GTLDriveFile *updatedFile,
                                              NSError *error) {
   if (error != nil)
   {
      NSString *err = error;
   }
   }];

}
-(void) createGoogleFolder
{
    GTLDriveFile *folder = [GTLDriveFile object];
    folder.title = @"ICA Voice Memo";
    folder.mimeType = @"application/vnd.google-apps.folder";

    GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:folder uploadParameters:nil];
    [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                              GTLDriveFile *updatedFolder,
                                              NSError *error)
    {
        if (error == nil)
        {
            uploadFolderID =  updatedFolder.identifier;

            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *docDirectory =  [paths objectAtIndex:0];
            NSString *path = [docDirectory stringByAppendingPathComponent:@"Cloud.plist"];

            NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile: path];

            [data setObject:uploadFolderID forKey:@"GoogleFolderID"];

            [data writeToFile: path atomically:YES];
        }
    }];
}
下面是我在谷歌硬盘上编写mp4文件的代码

-(void) writeToGoogleDrive:(NSString *)modifiedFileDateString
{
    [self createGoogleFolder];
    NSString *title = modifiedFileDateString;

    GTLDriveFile *metadata = [GTLDriveFile object];
    metadata.title = title;

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docDirectory =  [paths objectAtIndex:0];
    NSString *filePath = [docDirectory stringByAppendingPathComponent:modifiedFileDateString];

    NSError *error = nil;
    NSData *data = [NSData dataWithContentsOfFile:filePath options:0 error:&error];
    if(data != nil && error==nil) {
        GTLUploadParameters *uploadParameters = [GTLUploadParameters uploadParametersWithData:data MIMEType:@"audio/mp4"];
        GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:metadata uploadParameters:uploadParameters];
        [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                                              GTLDriveFile *updatedFile,
                                                              NSError *error) {
        if (error != nil) {
            UIAlertView *alert =
            [[UIAlertView alloc] initWithTitle: @"Upload Error"
                                       message: [error localizedDescription]
                                      delegate: nil
                             cancelButtonTitle:@"OK"
                             otherButtonTitles:nil];
            [alert show];
        }
    }];
}
我想将数据写入谷歌硬盘“ICA语音备忘录”上创建的新文件夹


我该如何修改代码才能做到这一点?

几天后,我终于解决了这个问题。首先,我有一个方法,使用当前文件夹Id检查文件夹是否存在,如果为空,则使用下面的代码

(void) createGoogleFolder
{
    GTLDriveFile *folder = [GTLDriveFile object];
    folder.title = @"ICA Voice Memo";
    folder.mimeType = @"application/vnd.google-apps.folder";

    GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:folder uploadParameters:nil];
   [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                              GTLDriveFile *updatedFile,
                                              NSError *error) {
   if (error != nil)
   {
      NSString *err = error;
   }
   }];

}
-(void) createGoogleFolder
{
    GTLDriveFile *folder = [GTLDriveFile object];
    folder.title = @"ICA Voice Memo";
    folder.mimeType = @"application/vnd.google-apps.folder";

    GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:folder uploadParameters:nil];
    [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                              GTLDriveFile *updatedFolder,
                                              NSError *error)
    {
        if (error == nil)
        {
            uploadFolderID =  updatedFolder.identifier;

            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *docDirectory =  [paths objectAtIndex:0];
            NSString *path = [docDirectory stringByAppendingPathComponent:@"Cloud.plist"];

            NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile: path];

            [data setObject:uploadFolderID forKey:@"GoogleFolderID"];

            [data writeToFile: path atomically:YES];
        }
    }];
}
之后,我使用文件夹Id作为我的父Id,并以正常方式添加文件