Domanda

ottengo un filelist con:

    String q = "title contains '"+query+"' and trashed = false";
    FileList list = drive.files().list().setQ(q).execute();
.

Voglio trovare un percorso per ogni file corrispondente nel filelist.

Capisco che lo stesso file può apparire in più cartelle.

Da quello che ho trovato, l'unico modo per creare un percorso per un file è quello di chiamare ripetutamente:

    drive.files().get(id).execute()
.

e quindi scegli un ID dall'elenco dei genitori di quel file, camminando verso l'albero finché non viene raggiunta la radice.

Durante la navigazione dell'albero, potrei semplicemente scegliere il primo genitore o fare un "BFS" finché non trovo la radice.

È davvero l'unico modo per trovare un percorso per un file, o ho perso parte dell'API?

Se questo è l'unico modo, le cartelle possono anche avere più genitori, rendendo possibili cicli?

(/ a / b / c=> / a / b / c / b / c / b / c ... se B ha genitori A & C)?

È stato utile?

Soluzione

Poiché le cartelle (che sono semplicemente un file di azionamento speciale con un tipo di mimi specifico) può avere più genitori, consiglierei l'approccio BFS e assicurarti di gestire i loop.

Per la condizione di arresto, è possibile salvare l'ID della cartella principale che è possibile recuperare da About.rootfolderid Attributo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top