2017-02-15 9 views

答えて

0

fileリソースには、ファイルの親が何であるかを示すリストが含まれています。そのルートかどうかをあなたに伝える独自のメソッドを作成するのは難しいことではありません。

parents []リストファイルを含む親フォルダのID。 作成リクエストの一部として指定されていない場合、ファイルは のMy Driveフォルダに直接配置されます。更新リクエストでは、値を変更するには、 addParentsおよびremoveParentsパラメータを使用する必要があります。

+0

メソッドはfile.getParents()であり、使用している現在のファイルオブジェクトのidのリストを返します。既に使用しています。しかし、getIsRoot()がこれだけのAPIであったため、私たちが得たidがrootかどうかをどうやって知ることができるでしょうか。今のところ、私は、ルートIDを静的変数に保存します。パラメタを 'root'として子を取得します。これはラウンドで実行可能な解決策ではないと感じています.V2のような直接apiはありません現在のIdはrootかどうか? –

+0

getIsRoot()Android SDKのメソッドで、GoogleドライブAPIのメソッドの一部ではありません。違いがあります。 SDKに追加する必要があるか、開発者はV2から覚えているような独自のメソッドを作成する必要があります。 – DaImTo

+0

私の知る限りでは、getIsRoot()はファイルリソースのgetParents()メソッドによってリストとして返されたParentReferenceクラスのメソッドでした。ファイルとParentReferenceクラスは両方ともGoogle Drive API V2の一部です。 –

0

すべてのファイルとフォルダにはルート(英語の別名「マイドライブ」)を除くという親があります。したがって、あなたのファイルのメタデータがそれがフォルダであり、親を持たないことを示すならば、それは暗黙のうちにrootです。 NBダニエルのコメントを見てください。まれな状況下では、フォルダが孤立する可能性があるため、追加のテストを組み込む必要があります。擬似コードで

boolean isRoot(File file) { return (file.parents.size == 0 && file.mimeType == "application/vnd.google-apps.folder") } getIsRoot() Iは、方法の実際の実装を参照するライブラリの古いバージョンのソースコードを見ました。これは、ParentsReferenceリソースのisRootプロパティを公開しています。したがって、まだv2 REST呼び出しを使用してこのプロパティにアクセスできます。具体的には、https://developers.google.com/drive/v2/reference/parents#resource

と言われていますが、今後はDriveが複数のルート(たとえば、異なるドメイン)を持つことは保証されません。親のない空のファイル/フォルダを作成します

  1. - :

    おそらく最も安全なアプローチは、になります。定義上、これはrootで作成されます。

  2. ファイルリソースであるjsonレスポンスでは、親のコレクションをチェックして親のIDを確認します。ルートのID。
  3. Androidの設定(アプリの実行場所に応じてCookie、サーバーデータストアなど)またはAppDataに保存します。
+0

この事実ではない、ファイルとフォルダがhttps://support.google.com/a/answer/6008339?hl=en – danielx

+0

良い点を孤立させることができます。これは端的なケースですが、それでも可能です。 – pinoyyid

関連する問題