使用Google Drive SDK iOS创建文件夹 [英] Create folder with Google Drive SDK iOS

查看:141
本文介绍了使用Google Drive SDK iOS创建文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Google Drive SDK for iOS创建一个文件夹。在此处的Google云端硬盘文档中:

I'm trying to create a folder using the Google Drive SDK for iOS. From the Google Drive documentation here:

https:/ /developers.google.com/drive/folder

它表示创建文件夹就像创建具有特殊MIME类型的文件一样。

It says that creating a folder is just like creating a 'file' with a special MIME type.

GTLUploadParameters *uploadParameters = nil;

self.driveFile = [GTLDriveFile object];
self.driveFile.title = foldername;

uploadParameters = [GTLUploadParameters new];
uploadParameters.MIMEType = @"application/vnd.google-apps.folder";

GTLQueryDrive *query = nil;
query = [GTLQueryDrive queryForFilesInsertWithObject:self.driveFile
                                    uploadParameters:uploadParameters];


[self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                                          GTLDriveFile *updatedFile,
                                                          NSError *error) {

但是当我执行查询时,我得到:

But when I perform the query, I get:

'NSInternalInconsistencyException ',原因:'上传数据和fileHandle是互斥的'

'NSInternalInconsistencyException', reason: 'upload data and fileHandle are mutually exclusive'

这表明我应该使用预定义的GTLUploadParameters工厂方法之一:

This suggests I should be using one of the predefined GTLUploadParameters factory methods:

+ (GTLUploadParameters *)uploadParametersWithData:(NSData *)data
                                         MIMEType:(NSString *)mimeType;

+ (GTLUploadParameters *)uploadParametersWithFileHandle:(NSFileHandle *)fileHandle
                                               MIMEType:(NSString *)mimeType;

但这些都不合适(或正如我所尝试的那样工作)。有没有人在iOS上使用Google云端硬盘成功创建文件夹?

But neither of these are appropriate (or work, as I've tried). Has anyone successfully created folders using Google Drive on iOS?

推荐答案

我这样做:

    GTLDriveFile *folderObj = [GTLDriveFile object];
    folderObj.title = folderName;
    folderObj.mimeType = @"application/vnd.google-apps.folder";

    // To create a folder in a specific parent folder, specify the identifier
    // of the parent:
    // _resourceId is the identifier from the parent folder
    if (_resourceId.length && ![_resourceId isEqualToString:@"0"]) {
        GTLDriveParentReference *parentRef = [GTLDriveParentReference object];
        parentRef.identifier = _resourceId;
        folderObj.parents = [NSArray arrayWithObject:parentRef];
    }

    GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:folderObj uploadParameters:nil];

    // executeQuery:...

这篇关于使用Google Drive SDK iOS创建文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆