iOS Google Drive SDK获取子文件夹ID

时间:2014-04-28 17:49:52

标签: ios google-drive-api

我有以下代码,它列出了根目录中的文件,但没有列出根目录中的任何子文件夹:

NSString *parentId = @"root";

GTLQueryDrive *queryDrive = [GTLQueryDrive queryForFilesList];
queryDrive.q = [NSString stringWithFormat:@"'%@' in parents and trashed=false", parentId];

[self.driveService executeQuery:queryDrive completionHandler:^(GTLServiceTicket *ticket,GTLDriveFileList *files,NSError *error)
{
     if (error == nil)
     {
         NSLog(@"Number of files: %i", [files.items count]);

         NSLog(@"Have results");
         // Iterate over files.items array
         for(GTLDriveFile *file in files)
         {
             NSLog(@"File Title:  %@ | ID: %@",file.title, file.identifier);
         }
     }
     else
     {
         NSLog(@"An error occurred: %@", error);
     }
 }];

这列出了我在文件夹中的7个文件,但与7个文件处于同一级别,我有一个子文件夹。

例如:

根 - > file1的 根 - > file2的 ...等等 都回来了

但是root-> MyFolder没有在结果集中列出。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可能想查看自己的应用验证方式。如果您仅使用应用程序的文件作为范围进行身份验证,则不会在应用程序外部看到其他文件和文件夹。

当您进行身份验证时:

self.gDriveAuthenticationViewController = GTMOAuth2ViewControllerTouch(scope:kGTLAuthScopeDrive,
        clientID:clientId,
        clientSecret:clientSecret,
        keychainItemName:keychainName,
        delegate:self,
        finishedSelector:"viewController:finishedWithAuth:error:")

使用范围:kGTLAuthScopeDrive而不是kGTLAuthScopeDriveFile