Pregunta

Tengo un filmarista con:

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

Quiero encontrar un camino a cada archivo correspondiente en el filmarista.

Entiendo que el mismo archivo puede aparecer en varias carpetas.

De lo que he encontrado, la única forma de crear un camino para un archivo es para llamar repetidamente:

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

y luego elija una ID de la lista de padres de ese archivo, subiendo por el árbol hasta que se alcance la raíz.

Mientras navega por el árbol, podría elegir el primer padre, o hacer un "BFS" hasta que encuentre la raíz.

¿Es esta realmente la única manera de encontrar un camino a un archivo, o he perdido alguna parte de la API?

Si esta es la única forma, también pueden las carpetas que tienen varios padres, haciendo los ciclos posibles?

(/ A / B / C=> / A / B / C / B / C / B / C ... Si B tiene padres A & C)?

¿Fue útil?

Solución

Dado que las carpetas (que son simplemente un archivo de unidad especial con un tipo MIME específico) pueden tener varios padres, recomendaría el enfoque de BFS y asegurándome de que maneje los bucles.

Para la condición de parada, puede guardar la identificación de la carpeta raíz que puede recuperar de la Acerca de.Rootfolderid atributo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top