如何使用谷歌硬碟SDK的iPhone在谷歌云端硬盘中创建文件夹?(how to create fol

2019-10-17 11:39发布

我使用谷歌驱动器SDK为iPhone和尝试上传音频文件“TestAudio” folder.If“TestAudio”文件夹没有在谷歌创建的驱动器,然后首先创建一个文件夹,之后我的音乐应该存储到只有该文件夹。 每一件事情是工作GR8除了文件夹创建。 可以任意好友,请帮助?

我使用下面的代码上传音频文件。

GTLUploadParameters *uploadParameters = nil;

NSString *soundFilePath = [[NSBundle mainBundle]
                           pathForResource:@"honey_bunny_new"
                           ofType:@"mp3"];

if (soundFilePath) {
    NSData *fileContent = [[NSData alloc] initWithContentsOfFile:soundFilePath];
    uploadParameters = [GTLUploadParameters uploadParametersWithData:fileContent MIMEType:@"audio/mpeg"];
}

self.driveFile.title = self.updatedTitle;
GTLQueryDrive *query = nil;
if (self.driveFile.identifier == nil || self.driveFile.identifier.length == 0) {
    // This is a new file, instantiate an insert query.
    query = [GTLQueryDrive queryForFilesInsertWithObject:self.driveFile
                                        uploadParameters:uploadParameters];
} else {
    // This file already exists, instantiate an update query.
    query = [GTLQueryDrive queryForFilesUpdateWithObject:self.driveFile
                                                  fileId:self.driveFile.identifier
                                        uploadParameters:uploadParameters];
}
UIAlertView *alert = [DrEditUtilities showLoadingMessageWithTitle:@"Saving file"
                                                         delegate:self];

[self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                                          GTLDriveFile *updatedFile,
                                                          NSError *error) {
[alert dismissWithClickedButtonIndex:0 animated:YES];
if (error == nil) {
    self.driveFile = updatedFile;
    self.originalContent = [self.textView.text copy];
    self.updatedTitle = [updatedFile.title copy];
    [self toggleSaveButton];
    [self.delegate didUpdateFileWithIndex:self.fileIndex
                                    driveFile:self.driveFile];
    [self doneEditing:nil];
} else {
    NSLog(@"An error occurred: %@", error);
    [DrEditUtilities showErrorMessageWithTitle:@"Unable to save file"
                                           message:error.description
                                          delegate:self];
}
}];

Answer 1:

我没有看到你的代码来创建一个文件夹,但我是有文件夹创建自己同样的问题。 如你所知,在mime类型必须是“应用程序/ vnd.google-apps.folder”。 我跑进断言失败,如果NSData的参数uploadParametersWithData为零。 所以,我想一个零长度NSData对象和失败。 使用1个字节NSData对象也失败了。 关键是要调用queryForFilesUpdateWithObject与一个UploadParameters:无。 然后将文件夹创建工作正常。 我还发现,在年底所示的Objective-C代码:

https://developers.google.com/drive/v2/reference/files/insert

是不正确的。 该file.parents应该如下:

GTLDriveParentReference *parentRef = [GTLDriveParentReference object];
parentRef.identifier = parentID;
if (parentID.length>0) file.parents = [NSArray arrayWithObjects:parentRef,nil];


文章来源: how to create folder on Google Drive using Google Drive SDK for iPhone?