2014-01-10 7 views
1

Я просто новый в этих библиотеках PCL, я разрабатываю приложение для iPhone с Xamarin, и я не могу найти способ сохранить его на телефоне. Ближайший я получаю с PCLStorage, но он сохраняет только текст. Существует другой способ сохранения двоичных файлов с другой процедурой. Спасибо.PCLStorage и двоичные данные

foreach (images element in json_object) 
{ 
      //var nameFile = Path.Combine (directoryname, element.name); 
      try{ 
       IFile file = await folder_new.GetFileAsync(element.name); 
      }catch(FileNotFoundException ex){ 
       RestClient _Client = new RestClient(element.root); 
       RestRequest request_file = new RestRequest("/images/{FileName}"); 
       request_file.AddParameter("FileName", element.name, ParameterType.UrlSegment); 
       _Client.ExecuteAsync<MemoryStream>(
         request_file, 
         async Response => 
         { 
           if (Response != null) 
           { 
            IFolder rootFolder_new = FileSystem.Current.LocalStorage; 
            IFile file_new = await rootFolder_new.CreateFileAsync(element.name,CreationCollisionOption.ReplaceExisting); 
            await file_new.WriteAllTextAsync(Response.Data); 
           } 
         }); 
      } 
     } 

ответ

6

Используйте метод IFile.OpenAsync, чтобы получить поток, который вы можете использовать для чтения/записи двоичных данных. Вот как вы могли бы прочитать файл:

IFile file = await folder_new.GetFileAsync(element.name); 
using (Stream stream = await file.OpenAsync(FileAccess.Read)) 
{ 
    // Read stream and process binary data from it... 

} 
Смежные вопросы