3

次の方法を使用すると、サブフォルダーを取得できますが、このコードはルートからすべてのフォルダーを取得します。たとえば、ゴミ箱にフォルダがある場合、マイ ドライブ内のフォルダと一緒にそれを取得します。

私の要件は、フォルダーがマイドライブにない場合は、最初にフォルダーを作成してからファイルを挿入することです。私の問題は、フォルダー名を確認しているときに、フォルダーがゴミ箱に存在するがマイドライブには存在しないため、フォルダーが存在するという応答が得られることです。

フォルダーを取得する私の方法は次のとおりです。

誰かが何か考えを持っているなら、私に知らせてください。

-(void)getFileListFromSpecifiedParentFolder {
    GTLQueryDrive *query2 = [GTLQueryDrive queryForFilesList];
//    GTLQueryDrive *query2 = [GTLQueryDrive queryForChildrenListWithFolderId:@"My Drive"];

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

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

    // 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 = %@ \n file kind %@ \n file identifier %@", file.title,file.kind,file.identifier);
                                            }];
                          }
                      }
                      else
                          [self createFolderForGoogleDriveWithName:@"Music"];
                  }];
}
4

1 に答える 1

3

次のクエリを使用して、破棄されたディレクトリを除外できます。application/vnd.google-apps.folder' and trashed = false

于 2013-04-30T09:13:27.227 に答える