Question

Je reçois un fileliste avec:

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

Je veux trouver un chemin d'accès à chaque fichier correspondant dans le fichier de filiste.

Je comprends que le même fichier peut apparaître dans plusieurs dossiers.

De ce que j'ai trouvé, le seul moyen de créer un chemin d'accès à un fichier est d'appeler à plusieurs reprises:

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

puis choisissez une carte d'identité dans la liste des parents de ce fichier, monte dans l'arbre jusqu'à atteindre la racine.

En navigant dans l'arbre, je pouvais simplement choisir le premier parent ou faire un "BFS" jusqu'à la recherche de la racine.

Est-ce vraiment le seul moyen de trouver un chemin d'accès à un fichier ou d'avoir manqué une partie de l'API?

Si c'est le seul moyen, les dossiers peuvent aussi avoir plusieurs parents, ce qui rend les cycles possibles?

(/ A / B / C=> / A / B / C / B / C / B / C ... Si B a des parents A & C)?

Était-ce utile?

La solution

Depuis les dossiers (qui sont simplement un fichier de conduite spécial avec un type mime spécifique) peuvent avoir plusieurs parents, je recommanderais l'approche BFS et assurez-vous de gérer des boucles.

Pour la condition d'arrêt, vous pouvez enregistrer l'ID du dossier racine que vous pouvez récupérer à partir du A propos.rotfolderDerid attribut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top