2012-07-25 8 views
7

だ与えられたファイルへのパスを見つけます。は、それは私がしてファイルリストを取得するID

同じファイルが複数のフォルダに表示されることがあります。

私が見つけたものとは、ファイルのパスを作成するための唯一の方法は、繰り返し呼び出すことです:

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

それまでツリーを歩いて、そのファイルの両親のリストからIDを選択してください根に達する。

ツリーをナビゲートしている間に、最初の親を選択するか、ルートを見つけるまで「BFS」を実行します。

これは実際にファイルへのパスを見つける唯一の方法ですか、またはAPIの一部を見逃したことがありますか?

これが唯一の方法であれば、フォルダは複数の親を持つこともできますか?

(/ a/b/c =>/a/b/c/b/c/b/c ... bに親がある場合& c)?

答えて

4

フォルダ(特定のMIMEタイプの特殊なドライブファイル)は複数の親を持つことができるので、BFSのアプローチをお勧めします。

停止条件の場合、about.rootFolderId属性から取得できるルートフォルダのIDを保存できます。

+0

parentReferenceにtitleフィールドがありますか?最終的には、ファイルIDではなくパス要素のリストで終わる必要があります。 –

+0

この場合、drive.parents.listは使用できません。私はそれを反映する答えを更新します。 – Alain

+0

Alain、about.rootFolderIdを使用する必要があるかどうか、または空の親リストが十分かどうか知っていますか? about.rootFolderIdが必要な場合、これはアカウント内で変更できますか、永久にキャッシュできますか? –

関連する問題