2012-06-29 8 views
9

Sono un po 'confuso dallo v2 Google Drive SDK.Enumerazione di cartelle e file utilizzando Google Drive SDK V2

Sembra che ci siano 2 metodi per recuperare informazioni su file e cartelle.

files.list e children.list

Utilizzando files.list Non mi sembra di essere in grado di restringere la mia ricerca per i file in una cartella specifica, ma utilizzando children.list restituisce solo informazioni del file molto di base come ad esempio ID. Non ci sono nomi di file.

Sembra che debba recuperare un elenco di bambini e quindi eseguire una richiesta per ciascun figlio per trovare il nome file che sembra molto inefficiente.

Qual è il normale \ modo corretto per enumerare le cartelle e il loro contenuto utilizzando Google Drive?

risposta

2

approccio alternativo è quello di utilizzare files.list con un'espressione di query per limitare la madre.

q='id-of-parent' in parents 

questo vi darà gli stessi risultati come la collezione bambino, ma con la piena metadati per ciascun elemento.

+0

Grazie. Darò una prova. – Kuffs

2

Aggiornamento -

Questo può ora essere realizzato con files.list. È possibile passare il parametro q con una query che verifica lo parents di un file o una cartella.

q='MYFOLDERID' in parents 

Altri parametri di ricerca e le opzioni e gli esempi qui: https://developers.google.com/drive/search-parameters

risposta originale -

Sì, questo è corretto. Stiamo cercando di migliorare questa funzione, ma sfortunatamente per ora ti sei bloccato - scusa.

Se si stanno enumerando tutti i file e le cartelle, una soluzione migliore potrebbe essere ottenere un elenco semplice e utilizzare l'array parents in un file per generare la gerarchia.

+6

Grazie. Annullerò i miei piani di integrazione di GDrive per ora fino a quando l'SDK non sarà più maturo. La larghezza di banda necessaria per scaricare e memorizzare nella cache l'intera struttura del disco è un dealbreaker su un dispositivo mobile. Se hai qualche parola in proposito, ti preghiamo di rilasciare un SDK Android leggero (di minima dipendenza) che ci consenta di trattare l'unità come un file system. io enumera file \ cartelle, cancella, carica, scarica ecc. L'attuale SDK è così difficile da usare. Voglio sostituire Dropbox ma il loro SDK è decisamente migliore al momento e mi consente di fare ciò che devo fare. – Kuffs

2

+1 ritorno metadati (almeno nome file) per children.list

+0

Con l'interrogazione files.list non è più necessario. –

1

Se si desidera ottenere tutte le cartelle per l'utilizzo in auto:

FileList folders=service.files().list().setQ("mimeType='application/vnd.google-apps.folder'").execute(); 
for(File fl: folders.getItems()){ 
    Log.v(TAG+" fOLDER name:",fl.getTitle()); 
}