GoogleドライブV2では、ParentReferenceオブジェクトを取得し、getIsRoot()メソッドを使用してクエリを実行していました。IDがGoogleドライブV3のルートIDであるかどうかを知るには?
V3では、Parentを取得しようとするとParentReferenceクラスがないため、与えられたIdがrootかどうかを知る方法がありません。
GoogleドライブV2では、ParentReferenceオブジェクトを取得し、getIsRoot()メソッドを使用してクエリを実行していました。IDがGoogleドライブV3のルートIDであるかどうかを知るには?
V3では、Parentを取得しようとするとParentReferenceクラスがないため、与えられたIdがrootかどうかを知る方法がありません。
fileリソースには、ファイルの親が何であるかを示すリストが含まれています。そのルートかどうかをあなたに伝える独自のメソッドを作成するのは難しいことではありません。
parents []リストファイルを含む親フォルダのID。 作成リクエストの一部として指定されていない場合、ファイルは のMy Driveフォルダに直接配置されます。更新リクエストでは、値を変更するには、 addParentsおよびremoveParentsパラメータを使用する必要があります。
すべてのファイルとフォルダにはルート(英語の別名「マイドライブ」)を除くという親があります。したがって、あなたのファイルのメタデータがそれがフォルダであり、親を持たないことを示すならば、それは暗黙のうちに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が複数のルート(たとえば、異なるドメイン)を持つことは保証されません。親のない空のファイル/フォルダを作成します
おそらく最も安全なアプローチは、になります。定義上、これはrootで作成されます。
これは可能ではありません。get the root folderと比較するにはIDを保存する必要があります。
メソッドはfile.getParents()であり、使用している現在のファイルオブジェクトのidのリストを返します。既に使用しています。しかし、getIsRoot()がこれだけのAPIであったため、私たちが得たidがrootかどうかをどうやって知ることができるでしょうか。今のところ、私は、ルートIDを静的変数に保存します。パラメタを 'root'として子を取得します。これはラウンドで実行可能な解決策ではないと感じています.V2のような直接apiはありません現在のIdはrootかどうか? –
getIsRoot()Android SDKのメソッドで、GoogleドライブAPIのメソッドの一部ではありません。違いがあります。 SDKに追加する必要があるか、開発者はV2から覚えているような独自のメソッドを作成する必要があります。 – DaImTo
私の知る限りでは、getIsRoot()はファイルリソースのgetParents()メソッドによってリストとして返されたParentReferenceクラスのメソッドでした。ファイルとParentReferenceクラスは両方ともGoogle Drive API V2の一部です。 –