/**
  * ftruncate() wrapper
  *
  * @param integer $new_size New size
  *
  * @return boolean
  */
 public function stream_truncate($new_size)
 {
     $this->downloadFile();
     $this->fileBody = substr($this->fileBody, 0, $new_size);
     $this->filePosition = min($this->filePosition, $new_size);
     $this->file = $this->file->getId() ? static::$service->files->update($this->file->getId(), $this->file, array('data' => $this->fileBody)) : static::$service->files->insert($this->file, array('data' => $this->fileBody, 'mimeType' => $this->detectMimetype($this->filePath)));
     return true;
 }
 /**
  * Get download url.
  *
  * @param Google_Service_Drive_DriveFile $file
  *
  * @return string|false
  */
 protected function _gd_getDownloadUrl($file)
 {
     if (strpos($file->mimeType, 'application/vnd.google-apps') !== 0) {
         return 'https://www.googleapis.com/drive/v3/files/' . $file->getId() . '?alt=media';
     } else {
         $mimeMap = $this->options['appsExportMap'];
         if (isset($mimeMap[$file->getMimeType()])) {
             $mime = $mimeMap[$file->getMimeType()];
         } else {
             $mime = $mimeMap['default'];
         }
         $mime = rawurlencode($mime);
         return 'https://www.googleapis.com/drive/v3/files/' . $file->getId() . '/export?mimeType=' . $mime;
     }
     return false;
 }
 /**
  * Get Files in a folder
  * @param \Google_Service_Drive_DriveFile $folder
  * @return \Google_Service_Drive_FileList
  */
 public function getFilesInFolder(\Google_Service_Drive_DriveFile $folder)
 {
     $query = 'trashed = false and \'' . $folder->getId() . '\' in parents';
     $fileList = $this->service->files->listFiles(array('q' => $query));
     return $fileList;
 }