7

我得到一个文件列表:

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

我想在 FileList 中找到每个匹配文件的路径。

我了解同一个文件可以出现在多个文件夹中。

根据我的发现,为文件创建路径的唯一方法是重复调用:

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

然后从该文件的父列表中选择一个 ID,沿着树向上直到到达根。

在导航树时,我可以选择第一个父级,或者执行“BFS”直到找到根。

这真的是找到文件路径的唯一方法,还是我错过了 API 的某些部分?

如果这是唯一的方法,文件夹是否也可以有多个父级,从而使循环成为可能?

(/a/b/c => /a/b/c/b/c/b/c... 如果 b 有父母 a 和 c)?

4

1 回答 1

4

由于文件夹(只是具有特定 MIME 类型的特殊驱动器文件)可以有多个父级,因此我建议使用 BFS 方法并确保您处理循环。

对于停止条件,您可以保存可以从about.rootFolderId属性中检索的根文件夹的 ID。

于 2012-07-25T21:12:13.987 回答