GoogleドライブをGoogleDriva Android APIと併用する場合は、条件を満たすすべてのファイルを取得するためにクエリを作成します。名前が一意の識別子ではないので、複数のファイルに同じ名前を付けることができます。 DriveIdはそうです。しかし時々我々は最新のファイルだけに興味がある。通常の方法(Googleのウェブサイトから)は、このようなものです。最初の結果ヒットのみをGoogleドライブから返す方法はありますか?
void retrieveFiles() {
SortOrder sortOrder = new SortOrder.Builder()
.addSortDescending(SortableField.MODIFIED_DATE)
.build();
Query query = new Query.Builder()
.addFilter(Filters.eq(SearchableField.TITLE, filename), "my_filename.txt"))
.setSortOrder(sortOrder)
.build();
MetadataBufferResult mbr = Drive.DriveApi.query(query).await().getMetadataBuffer();
// Now we can iterate through all the result hits
Metadata metadata;
Iterator<Metadata> iterator = mbr.getMetadataBuffer().iterator();
metadata = iterator.next(); // get the first hit
});
このクエリは、条件を満たすすべてのファイルのメタデータを返します。しかし、これは私たちが興味を持っているので、検索を最初のファイル(またはそれらのうちの任意の数)に限定すると便利です。並べ替えは、結果を整理することができます。 結果セットを制限する方法はありますか? SQLのTOP N ROWSのようなもの。