Как я могу запросить все метаданные папки и файла с помощью сервисов API Google Диска за один раз?

Как я могу запросить метаданные папок и файлов с помощью сервисов Google Диска API, единовременно для всех?

Я использую этот API com.google.apis:google-api-services-drive:v2-rev170-1.20.0 для своего приложения.

 compile('com.google.apis:google-api-services-drive:v2-rev170-1.20.0') {
    exclude group: 'org.apache.httpcomponents'
}

 public List<File> listFilesInApplicationDataFolder() throws Exception {
    List<File> result = new ArrayList<File>();
    Drive.Files.List request = null;
    try {
        request = mService.files().list();
    } catch (IOException e) {
        e.printStackTrace();
        throw new IOException(e);
    }

    request.setQ("'appfolder' in parents");

    do {
        try {
            FileList files = request.execute();

            result.addAll(files.getItems());
            request.setPageToken(files.getNextPageToken());
        } catch (Exception e) {
            System.out.println("An error occurred: " + e);
            request.setPageToken(null);
            throw new Exception(e);
        }

    } while (request.getPageToken() != null &&
            request.getPageToken().length() > 0);

    return result;
}

Этот метод получает все папки и файлы из корневой папки. Но как я могу получить все файлы в подпапке, в одноразовом запросе?

Структура папок «Мой диск» выглядит следующим образом:

  appdata
--P_Folder_1
         --S_Folder_1
                 --File_1
                 --File_2
                 --File_3
         --S_Folder_2
               --File_1
               --File_2
               --File_3
        --S_Folder_3
                 --File_1
                 --File_2
                 --File_3
--P_Folder_2
         --S_Folder_1
                 --File_1
                 --File_2
                 --File_3
         --S_Folder_2
                 --File_1
                 --File_2
                 --File_3
        --S_Folder_3
                 --File_1
                 --File_2
                 --File_3

Пожалуйста, дайте предложения или документ для ссылки. Большое спасибо!!


person Joyofio987    schedule 03.06.2016    source источник


Ответы (1)


Я думаю, что это SO вопрос может дать вам представление о том, как решить вашу проблему.

Вы можете вызвать DriveFolder.listChildren который может получить набор метаданных для непосредственных дочерних элементов папки. Результат также будет включать метаданные для файлов и папок. Вот также полный пример кода.

Для получения дополнительной информации просто ознакомьтесь с документацией по API и этим вопросам SO.

person KENdi    schedule 04.06.2016
comment
OK. Я понял. Мне нужно сделать несколько запросов для моего случая. Я прав? Большое спасибо!! - person Joyofio987; 04.06.2016