ios - 使用 Google Drive SDK iOS 创建文件夹内部文件夹

标签 ios objective-c google-drive-api

我正在尝试使用适用于 iOS 的 Google 云端硬盘 SDK 创建一个文件夹。 我使用如下代码,在创建文件夹内部创建主驱动器。

GTLDriveFile *folder = [GTLDriveFile object];
folder.title = @"Testing";
folder.mimeType = @"application/vnd.google-apps.folder";
NSString *parentId = @"Testing";

folder.parents = @[parentId];

// ... execute query


GTLQueryDrive *query1 = [GTLQueryDrive     queryForFilesInsertWithObject:folder uploadParameters:nil];
[self.driveService executeQuery:query1 completionHandler:^(GTLServiceTicket *ticket,
                                              GTLDriveFile *updatedFile,
                                              NSError *error)
{
    if (error == nil)
    {
        NSLog(@"Created folder %@",updatedFile.identifier);

         GTLDriveParentReference *parentReference = [GTLDriveParentReference object];

         parentReference.identifier = updatedFile.identifier;
         GTLDriveFile *subFolder = [GTLDriveFile object];
         subFolder.title = @"Testing12352";
         subFolder.mimeType = @"application/vnd.google-apps.folder";
         NSString *parentId = updatedFile.identifier;
         subFolder.parents =  @[parentReference];

        // ... execute query

        GTLQueryDrive *query1 = [GTLQueryDrive queryForFilesInsertWithObject:folder uploadParameters:nil];
        [self.driveService executeQuery:query1 completionHandler:^(GTLServiceTicket *ticket,
                                                                   GTLDriveFile *updatedFile,
                                                                   NSError *error)
         {
             if (error == nil)
             {
                  NSLog(@"Created folder %@",updatedFile.parents);
             }
         }];

工作完美。 Google 云端硬盘文件夹内部文件夹创建..

最佳答案

如果您想在 root 中创建 Testing 文件夹,并在 Testing 文件夹中创建 Testing12352 ,则为 测试 你需要设置 parents[@"root"] 而对于 Testing12352 你需要设置测试的 identifier 作为 parent

GTLDriveFile *folder = [GTLDriveFile object];
folder.title = @"Testing";
folder.mimeType = @"application/vnd.google-apps.folder";
NSString *parentId = @"root";

folder.parents = @[parentId];

// ... execute query



GTLQueryDrive *query1 = [GTLQueryDrive     queryForFilesInsertWithObject:folder uploadParameters:nil];
[self.driveService executeQuery:query1 completionHandler:^(GTLServiceTicket *ticket,
    GTLDriveFile *updatedFile,
    NSError *error)
    {
        if (error == nil)
        {
            NSLog(@"Created folder %@",updatedFile.identifier);



            GTLDriveFile *subFolder = [GTLDriveFile object];
            subFolder.title = @"Testing12352";
            subFolder.mimeType = @"application/vnd.google-apps.folder";
            NSString *parentId = updatedFile.identifier;
            subFolder.parents = @[parentId];

            // ... execute query

            GTLQueryDrive *query1 = [GTLQueryDrive queryForFilesInsertWithObject:subFolder uploadParameters:nil];
            [self.driveService executeQuery:query1 completionHandler:^(GTLServiceTicket *ticket,
            GTLDriveFile *updatedFile,
            NSError *error)
            {
                if (error == nil)
                {
                    NSLog(@"Created folder %@",updatedFile.parents);
                }
            }];

注意:不要忘记将 scope 设置为 kGTLAuthScopeDrive

关于ios - 使用 Google Drive SDK iOS 创建文件夹内部文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41101268/

相关文章:

ios - 当 super View 消失时通知 subview Controller

ios - 在 iOS 8 应用程序中应该如何组织字符串?

ios - 当数组中有多个字典时,如何按升序创建数组

google-apps-script - 将文件上传到 Google Drive 文件夹时触发事件

ios - 如何测试 CoreBluetooth 中两个 CBPeripheral 的相等性?

iphone - 为什么在 objective-c 中星号后使用下划线

google-drive-api - 使用 Google Drive API,如何查找包含数字字符串的文件名?

ios - 如何在 Google 云端硬盘上保存和检索图像

ios - 在 UItableView Cell 中自动添加图像?

iphone - 在 iOS 上的 Objective-C 中设置委托(delegate)