async getFileList (q, fields, full, orderBy, pageSize) {
    full = full || false

    if (!this.checkAuthorizationStatus()) return

    let data = []
    let pageToken
    let counter = 1

    this.logger.info(`Getting ${(full) ? 'full ' : ''}file list of keyword`, q)
    do {
      this.logger.debug(`Getting page ${counter}`)
      let params = {
        pageSize: pageSize || 1000,
        orderBy: orderBy || 'modifiedTime desc',
        q,
        fields: 'nextPageToken, files(' + (fields || 'id, name, modifiedTime, parents, size') + ')'
      }

      if (this._data.drive.type === 'user') {
        params = {
          ...params,
          corpora: 'user',
          includeItemsFromAllDrives: false
        }
      } else {
        params = {
          ...params,
          driveId: this._data.drive.driveId,
          corpora: 'drive',
          includeItemsFromAllDrives: true,
          supportsTeamDrives: true
        }
      }

      if (pageToken) params.pageToken = pageToken
      let res
      try {
        res = await pRetry(async () => {
          const result = await this.driveClient.files.list(params)

          return result
        }, {
          onFailedAttempt: async (error) => {
            this.logger.debug(`Attempt ${error.attemptNumber} failed. There are ${error.retriesLeft} retries left`)

            return new Promise((resolve) => {
              setTimeout(() => {
                resolve()
              }, 10000)
            })
          },
          retries: 5
        })
      } catch (error) {
        this.logger.error('Error while getting dir list', q, error)
        return []
      }
      res = res.data
      if (res.nextPageToken && full) pageToken = res.nextPageToken
      else pageToken = null
      data = data.concat(res.files)
      counter++
    } while (pageToken)

    this.logger.info(`Got ${data.length} files' metadatas`)
    return data
  }
Get file list

@param {String} q Keywords
@param {String=} fields Selected fields
@param {Boolean=} full Get all files
@param {String} orderBy Order of the list

@returns {Array} File list