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 に答える