Ios8 如何在google drive上编写由我创建的文件夹
我被要求将发送到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
(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,并以正常方式添加文件