2

グーグルドライブAPIを使用してグーグルドライブからすべてのファイルとフォルダの名前を取得したい。

私のクエリは次のようになります。

 GTLQueryDrive *query = [GTLQueryDrive queryForFilesList];

    query.q = @"";
     //or i also use this code

  query.q = @"mimeType = 'text/plain'";

私もこのコードを試しました:

-(void)getFileListFromSpecifiedParentFolder {
    GTLQueryDrive *query2 = [GTLQueryDrive queryForChildrenListWithFolderId:@"root"];
    query2.maxResults = 1000;

    // queryTicket can be used to track the status of the request.
    [self.driveService executeQuery:query2
                  completionHandler:^(GTLServiceTicket *ticket,
                                      GTLDriveChildList *children, NSError *error) {
                      NSLog(@"\nGoogle Drive: file count in the folder: %d", children.items.count);
                      //incase there is no files under this folder then we can avoid the fetching process
                      if (!children.items.count) {
                          return ;
                      }

                      if (error == nil) {
                          for (GTLDriveChildReference *child in children) {

                              GTLQuery *query = [GTLQueryDrive queryForFilesGetWithFileId:child.identifier];

                              // queryTicket can be used to track the status of the request.
                              [self.driveService executeQuery:query
                                            completionHandler:^(GTLServiceTicket *ticket,
                                                                GTLDriveFile *file,
                                                                NSError *error) {

                                                NSLog(@"\nfile name = %@", file.originalFilename);
                                            }];
                          }
                      }
                  }];
}
4

1 に答える 1

2
-(void)fetchGoogleDriveFileListWithfolderId:(NSString *)folderId
    :(void (^)(NSMutableArray *, NSError*))completionBlock
{
    GTLQueryDrive *query = [GTLQueryDrive queryForFilesList];
    query.q =[NSString stringWithFormat:@"'%@' in parents and trashed=false", folderId];

    GTLServiceTicket *ticketListing = [self.driveService
        executeQuery:query completionHandler:^(GTLServiceTicket *ticket,GTLDriveFileList *files, NSError *error)
    {
        NSMutableArray *mainArray=[[NSMutableArray alloc]init];

        if (error == nil)
        {
            completionBlock(files.items,nill);
        }
        else
        {
            NSLog(@"An error occurred: %@", error);
            completionBlock(nil,error);
        }
    }];
}

ここ query.q =[NSString stringWithFormat:@"'%@' in parents and trashed=false", folderId];

folderId は「root」(ルート フォルダーの場合)、sharedWithMe (共有フォルダーの場合) の場合があります。ゴミ箱に移動したファイルを一覧表示する場合は、trashed=true に変更します。

于 2015-01-14T02:01:12.063 に答える