Unicode C Google Drive: List Files

Back to Index

Lists files..

Documentation: https://developers.google.com/drive/v3/reference/files/list


#include <C_CkRestW.h>
#include <C_CkOAuth2W.h>
#include <C_CkStringBuilderW.h>
#include <C_CkJsonObjectW.h>

void ChilkatSample(void)
    {
    HCkRestW rest;
    BOOL success;
    HCkOAuth2W oauth2;
    HCkStringBuilderW sbJson;
    HCkJsonObjectW json;
    const wchar_t *kind;
    BOOL incompleteSearch;
    int i;
    int count_i;
    const wchar_t *id;
    const wchar_t *name;
    const wchar_t *mimeType;

    rest = CkRestW_Create();

    //   Provide a previously obtained OAuth2 access token.
    oauth2 = CkOAuth2W_Create();
    CkOAuth2W_putAccessToken(oauth2,L"OAUTH2_ACCESS_TOKEN");
    CkRestW_SetAuthOAuth2(rest,oauth2);

    success = CkRestW_Connect(rest,L"www.googleapis.com",443,TRUE,TRUE);
    if (success != TRUE) {
        wprintf(L"%s\n",CkRestW_lastErrorText(rest));
        CkRestW_Dispose(rest);
        CkOAuth2W_Dispose(oauth2);
        return;
    }

    sbJson = CkStringBuilderW_Create();
    success = CkRestW_FullRequestNoBodySb(rest,L"GET",L"/drive/v3/files",sbJson);
    if (success != TRUE) {
        wprintf(L"%s\n",CkRestW_lastErrorText(rest));
        CkRestW_Dispose(rest);
        CkOAuth2W_Dispose(oauth2);
        CkStringBuilderW_Dispose(sbJson);
        return;
    }

    if (CkRestW_getResponseStatusCode(rest) != 200) {
        wprintf(L"Received error response code: %d\n",CkRestW_getResponseStatusCode(rest));
        wprintf(L"Response body:\n");
        wprintf(L"%s\n",CkStringBuilderW_getAsString(sbJson));
        CkRestW_Dispose(rest);
        CkOAuth2W_Dispose(oauth2);
        CkStringBuilderW_Dispose(sbJson);
        return;
    }

    json = CkJsonObjectW_Create();
    CkJsonObjectW_LoadSb(json,sbJson);

    //  The following code parses the JSON response.
    //  A sample JSON response is shown below the sample code.

    kind = CkJsonObjectW_stringOf(json,L"kind");
    incompleteSearch = CkJsonObjectW_BoolOf(json,L"incompleteSearch");
    i = 0;
    count_i = CkJsonObjectW_SizeOfArray(json,L"files");
    while (i < count_i) {
        CkJsonObjectW_putI(json,i);
        kind = CkJsonObjectW_stringOf(json,L"files[i].kind");
        id = CkJsonObjectW_stringOf(json,L"files[i].id");
        name = CkJsonObjectW_stringOf(json,L"files[i].name");
        mimeType = CkJsonObjectW_stringOf(json,L"files[i].mimeType");
        i = i + 1;
    }

    wprintf(L"Example Completed.\n");


    CkRestW_Dispose(rest);
    CkOAuth2W_Dispose(oauth2);
    CkStringBuilderW_Dispose(sbJson);
    CkJsonObjectW_Dispose(json);

    }

Sample JSON Response Body

{
 "kind": "drive#fileList",
 "incompleteSearch": false,
 "files": [
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolT1E4blNEaHlBVTg",
   "name": "misc",
   "mimeType": "application/vnd.google-apps.folder"
  },
  {
   "kind": "drive#file",
   "id": "0B84ttUI7E_NyWHBYNUlFRGZSWVE",
   "name": "02112017091435553-LW0826-058444946-4C414E43.xml",
   "mimeType": "application/xml"
  },
  {
   "kind": "drive#file",
   "id": "0B5w0YPzxv8g6SmRDTWUweEJCeVk",
   "name": "Sales in 2004.pdf",
   "mimeType": "application/pdf"
  },
  {
   "kind": "drive#file",
   "id": "0By-hrxCCDzSQUGxJY0hzNUFpNmc",
   "name": "helloWorld.txt",
   "mimeType": "text/plain"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolMjZhSkV0a2tUX3c",
   "name": "hamletC.xml",
   "mimeType": "text/xml"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolVlA1d0tscUtRLXc",
   "name": "chilkat",
   "mimeType": "application/vnd.google-apps.folder"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolelZ2UGdPZmlJTmc",
   "name": "hamlet2.xml",
   "mimeType": "text/xml"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolaWNqLWJqLUhwb2M",
   "name": "starfish3.jpg",
   "mimeType": "image/jpeg"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolNlFnbDhWZ3g3UGc",
   "name": "starfish4.jpg",
   "mimeType": "image/jpeg"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolQlExSlBQT1phZXM",
   "name": "pigs.json",
   "mimeType": "attachment/json"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolVHRPVkxtYWFtZkk",
   "name": "starfish20.jpg",
   "mimeType": "image/jpeg"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolRGZEV3ZGUTZfNFk",
   "name": "penguins2.jpg",
   "mimeType": "image/jpeg"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolS2FXSjliMXQxSU0",
   "name": "starfish.jpg",
   "mimeType": "image/jpeg"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolREhVUzVWRUlFeGM",
   "name": "Пингвины.jpg",
   "mimeType": "image/jpeg"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolZUhxckMzb0dRMzg",
   "name": "starfish.jpg",
   "mimeType": "image/jpeg"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolbUF6WS1Gei1oalk",
   "name": "penguins.jpg",
   "mimeType": "image/jpeg"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYola296ODZUSm5GYU0",
   "name": "123",
   "mimeType": "application/vnd.google-apps.folder"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolbTE3c3J5RHBUcHM",
   "name": "abc",
   "mimeType": "application/vnd.google-apps.folder"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolTmhybWJSUGd5Q2c",
   "name": "testHello.txt",
   "mimeType": "text/plain"
  },
  {
   "kind": "drive#file",
   "id": "0B53Q6OSTWYolY2tPU1BnYW02T2c",
   "name": "testFolder",
   "mimeType": "application/vnd.google-apps.folder"
  }
 ]
}