DownloadFile Method
Downloads the currently selected file.
Syntax
googledrive.downloadFile(fileFormat, [callback])
Callback
The 'callback' parameter specifies a function which will be called when the operation completes (or an error is encountered). If the 'callback' parameter is not specified, then the method will block and will not return until the operation completes (or an error is encountered).
The callback for this method is defined as:
function(err){ }
'err' is the error that occurred. If there was no error, then 'err' is 'null'.
'err' has 2 properties which hold detailed information:
err.code err.message
Remarks
This method downloads the file selected by ResourceIndex. If LocalFile is set the file will be saved to the specified location. If LocalFile is not set the file data will be held by ResourceData.
The FileFormat parameter specifies the formatting to be applied when saving the file, such as "text/plain". Specify an empty string for this parameter to use the default format for the file. Possible formats may be found by querying the ResourceFormats property.
Note: The file to be downloaded may be selected by calling either ListResources or GetResourceInfo and setting ResourceIndex, or simply by setting ResourceId before calling this method.
To decrypt an encrypted file set EncryptionAlgorithm and EncryptionPassword before calling this method.
googledrive.ResourceIndex = 0; googledrive.LocalFile = "../MyFile.zip"; googledrive.DownloadFile("");
Resuming Downloads
The class also supports resuming failed downloads by using the StartByte property. If the download was interrupted, set StartByte to the appropriate offset before calling this method to resume the download.
googledrive.ResourceIndex = 0; googledrive.LocalFile = downloadFile; googledrive.DownloadFile(""); //The transfer is interrupted and DownloadFile() above fails. Later, resume the download: //Get the size of the partially download file googledrive.StartByte = new FileInfo(downloadFile).Length; googledrive.LocalFile = downloadFile; googledrive.DownloadFile();
Resuming Encrypted File Downloads
Resuming encrypted file downloads is only supported when LocalFile was set in the initial download attempt. When beginning an encrypted download if LocalFile is set the class will create a temporary file in TempPath to hold the encrypted data until it is complete.
If the download is interrupted DownloadTempFile will be populated with the temporary file holding the partial data.
When resuming, DownloadTempFile must be populated along with StartByte to allow the remainder of the encrypted data
to be downloaded. Once the encrypted data is downloaded it will be decrypted and written to LocalFile.
googledrive.ResourceIndex = 0; googledrive.LocalFile = downloadFile; googledrive.EncryptionPassword = "password"; googledrive.DownloadFile(); //The transfer is interrupted and DownloadFile() above fails. Later, resume the download: //Get the size of the partially download temp file googledrive.StartByte = new FileInfo(googledrive.Config("DownloadTempFile")).Length; googledrive.LocalFile = downloadFile; googledrive.EncryptionPassword = "password"; googledrive.DownloadFile();