private async Task <string> ReadFileAsync(IDriveFile file) { var result = await file.OpenAsync(this.client, DriveFile.ModeReadOnly, null); if (!result.Status.IsSuccess) { this.logger.Error("Failed to read file."); return(null); } using (var streamReader = new StreamReader(result.DriveContents.InputStream)) { return(await streamReader.ReadToEndAsync()); } }
private async Task<string> ReadFileAsync(IDriveFile file) { var result = await file.OpenAsync(this.client, DriveFile.ModeReadOnly, null); if (!result.Status.IsSuccess) { this.logger.Error("Failed to read file."); return null; } using (var streamReader = new StreamReader(result.DriveContents.InputStream)) { return await streamReader.ReadToEndAsync(); } }
//получаем файл backup private async Task GetBackUpFile(IDriveApiDriveContentsResult contentResults) { try { var contentFile = new StringBuilder(); //получаем папку backup DriveId folderBackUpId = FindItems(folderName).Result; if (folderBackUpId == null) { CreateAlertDialog("", errorMessage); //папка с backup не обнаружена } else { IDriveFolder driveFolder = null; IDriveFile driveFile = null; //получаем папку по ID driveFolder = driveFolder ?? folderBackUpId.AsDriveFolder(); //если папка не ноль то получаем файлы if (driveFolder != null) { var filesResult = await driveFolder.ListChildrenAsync(_googleApiClient); Java.Util.Date temp = null; foreach (var item in filesResult.MetadataBuffer) { if (item.Title.Contains(filename)) { if (temp == null || !temp.After(item.ModifiedDate)) { temp = item.ModifiedDate; driveFile = item.DriveId.AsDriveFile(); } } } //чтение файла из Google drive и получение строки в BAse64 var readFile = await driveFile.OpenAsync(_googleApiClient, DriveFile.ModeReadOnly, null); using (var inpstr = readFile.DriveContents.InputStream) using (var streamReade = new StreamReader(inpstr)) { while (streamReade.Peek() >= 0) { contentFile.Append(await streamReade.ReadLineAsync()); } } //конвертируем строку из base64 и записываем в файл БД(переписываем) byte[] bytes = Convert.FromBase64String(contentFile.ToString()); System.IO.File.WriteAllBytes(pathToDb, bytes); CreateAlertDialog("", successMessage); } } } catch (Exception er) { Log.Logger.Error(er.Message, er.StackTrace); CreateAlertDialog("", errorMessage); } }