Я использую SDK сервисов Google Play.
И попробовал демонстрации с сайта разработчика.
Есть ли способ получить (скачать) все файлы из определенной папки?
Любой указатель будет большим подспорьем. Весь пример кода не кажется полным.
Я использую SDK сервисов Google Play.
И попробовал демонстрации с сайта разработчика.
Есть ли способ получить (скачать) все файлы из определенной папки?
Любой указатель будет большим подспорьем. Весь пример кода не кажется полным.
Вот «ожидающая» версия метода, который делает что-то подобное (должен запускаться в потоке, отличном от пользовательского интерфейса).
// list / search all non-trashed files in a folder (globally if 'fldr' is null)
GoogleApiClient _gac;
public void findAll(String title, String mime, DriveFolder fldr) {
ArrayList<Filter> fltrs = new ArrayList<Filter>();
fltrs.add(Filters.eq(SearchableField.TRASHED, false));
if (title != null)
fltrs.add(Filters.eq(SearchableField.TITLE, title));
if (mime != null)
fltrs.add(Filters.eq(SearchableField.MIME_TYPE, mime));
Query qry = new Query.Builder().addFilter(Filters.and(fltrs)).build();
MetadataBufferResult rslt = (fldr == null) ? Drive.DriveApi.query(_gac, qry).await() :
fldr.queryChildren(_gac, qry).await();
if (rslt.getStatus().isSuccess()) {
MetadataBuffer mdb = null;
try {
mdb = rslt.getMetadataBuffer();
if (mdb == null) return null;
for (Metadata md : mdb) {
if ((md == null) || (!md.isDataValid()) || md.isTrashed()) continue;
// md gives you the file info
}
} finally { if (mdb != null) mdb.close(); }
}
}
Надеюсь, это поможет, есть куча кода на ту же тему на Github здесь, но я уже давно его не трогал (т.е. никаких гарантий).
Filters
?
- person user1537779; 05.05.2014