Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google drive api 谷歌硬盘iOS SDK_Google Drive Api - Fatal编程技术网

Google drive api 谷歌硬盘iOS SDK

Google drive api 谷歌硬盘iOS SDK,google-drive-api,Google Drive Api,我想检查一个文件夹是否存在,只有当它不存在时才创建一个新文件夹。但是,该文件夹可以是root或其他文件夹的子文件夹。那么,我如何在Unix上执行类似mkdirs的操作,在其中为它指定一个路径,并在该路径中创建所有目录 顺便说一句,SDK的使用有点令人沮丧,因为它似乎没有使用文件系统路径的方法。相反,您必须处理大量的查询和回调,这相当混乱。W 这是我用来创建文件夹的方法: - (void)createFolder:(NSString *)folderName completion:(void (^

我想检查一个文件夹是否存在,只有当它不存在时才创建一个新文件夹。但是,该文件夹可以是root或其他文件夹的子文件夹。那么,我如何在Unix上执行类似mkdirs的操作,在其中为它指定一个路径,并在该路径中创建所有目录

顺便说一句,SDK的使用有点令人沮丧,因为它似乎没有使用文件系统路径的方法。相反,您必须处理大量的查询和回调,这相当混乱。W

这是我用来创建文件夹的方法:

- (void)createFolder:(NSString *)folderName completion:(void (^)(GTLDriveFile * file, NSError *))handler {
    NSLog(@"createFolder:%@ completion:", folderName);

    GTLDriveFile *folder = [GTLDriveFile object];
    folder.title = folderName;
    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) {
            NSLog(@"Created folder");
            handler(updatedFile, nil);
        } else {
            NSLog(@"An error occurred: %@", error);
            handler(updatedFile, error);
        }
    }];
}
没有简单的方法

*nix文件系统是分层的,而googledrive文件系统不是。UI和API将一些东西称为“文件夹”,但它们只不过是标记/标签

因此,如果您想要一个文件夹层次结构,您需要自己构建它(可能如您所想)。没有捷径

您可能会通过搜索所有文件夹来启动应用程序

q = "mimeType = 'application/vnd.google-apps.folder'"

我看到的一个问题是存在性检查和创建调用不是原子的。对createFolder:的一个调用可能会在另一个调用完成创建之前执行检查。这是正确的。市场名称“驱动器”的含义类似于硬盘驱动器,实际上是松散耦合的服务器群,有大量异步更新正在进行。如果你的应用程序采用了这种模式,那也不算太糟糕。任何试图将驱动器视为驱动器的应用程序都会失败。