2013-04-01 12 views
10

con QueryCome faccio a interrogare Google Drive per id di una cartella con nome conosciuto nella cartella principale (Google Drive SDK per iPhone)?

GTLQueryDrive *queryFilesList = [GTLQueryDrive queryForChildrenListWithFolderId:@"root"];

ottengo tutto nella cartella principale: file e cartelle. Certo, posso cercare la cartella in GTLDriveChildList restituita. Ma la cartella radice può contenere migliaia di elementi e io ne ho bisogno solo uno. Ho provato la ricerca ristretta. Commenti in GTLQueryDrive.h dicono che è possibile. Ho provato

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

per interrogare solo le cartelle o

queryFilesList.q = [NSString stringWithFormat:@"title='%@'", folderName];

a interrogare tutti gli elementi in base al nome. Entrambe le query restituiscono elenchi vuoti. Doppio controllo: la cartella che cerco esiste realmente.

Ho provato

GTLQueryDrive *queryFilesList = [GTLQueryDrive queryForFilesList]; 

Funziona bene con

queryFilesList.q = @"mimeType='audio/x-aiff'"; 

Ma ritorna lista vuota se provo ad interrogare solo le cartelle con

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

Che cosa sto facendo sbagliato?

risposta

7

Sono un idiota egoista!

GTLQueryDrive *queryFilesList = [GTLQueryDrive queryForChildrenListWithFolderId:@"root"]; 
queryFilesList.q = @"mimeType='application/vnd.google-apps.folder'"; 

funziona bene, ma vede SOLO le cartelle create con questa app! Questo era il mio problema Per essere precisi è possibile utilizzare questa query:

queryFilesList.q = @"mimeType='application/vnd.google-apps.folder' and 'root' in parents and trashed=false"; 

trashed=false è importante se non si desidera che gli elementi cestinati per essere trovato.

+0

come hai avuto modo di mostrare tutti i file, non solo quelli creati dall'app corrente? – pstoppani

+2

Ah, l'app deve utilizzare kGTLAuthScopeDrive anziché kGTLAuthScopeDriveFile. – pstoppani

+0

@pstoppani, dove stai regolando quella costante? Non sto usando nessuno di questi ovunque durante la mia autorizzazione. puoi aggiungere alla tua risposta ciò che sembra un dettaglio molto importante? – tarabyte

Problemi correlati