3 votes

Comment obtenir les sous-dossiers de My Drive dans Google Drive

En utilisant la méthode suivante, je suis capable d'obtenir les sous-dossiers, mais ce code récupère tous les dossiers à partir de la racine. Par exemple, s'il y a un dossier dans la corbeille, il le récupère ainsi que les dossiers dans Mon lecteur.

Si le dossier n'est pas présent sur le disque dur, je dois d'abord en créer un, puis insérer les fichiers. Mon problème est que, lorsque je vérifie le nom du dossier, comme le dossier existe dans la corbeille mais pas dans My Drive, j'obtiens la réponse que le dossier existe.

Voici ma méthode pour récupérer les dossiers.

Si quelqu'un a une idée, faites-le moi savoir.

-(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"];
                  }];
}

3voto

Burcu Dogan Points 6024

Vous pouvez filtrer les répertoires mis à la poubelle avec la requête suivante : application/vnd.google-apps.folder' and trashed = false

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X