2014-10-30 50 views
0

我被要求发送到谷歌云端硬盘帐户与代码中创建一个预先定义的文件夹中的文件下面写我怎样写由我在谷歌创建的文件夹驱动

(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; 
    } 
    }]; 

} 

我写代码一个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语音备忘录”上创建新的文件夹。

如何修改我的代码来执行此操作?

回答

0

我终于在两天后解决了这个问题。首先我有检查的文件夹的使用当前文件夹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 *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,并添加文件以正常的方式。

相关问题