Я новичок в Xamarin. Для PCL доступно множество трудностей из-за того, что для PCL доступна только небольшая сборка .Net.Как загрузить файл с URL-адреса в проекте перекрестной платформы xamarin с использованием поддержки PCL
Мне нужно загрузить .db-файл, нажав URL-адрес, который требуется сохранить на локальном диске. Поскольку проект находится в PCL, это не позволяет мне использовать System.IO.File в моем проекте, поэтому я не могу выполнять файловые операции, доступные в библиотеке классов .Net.
Ex: Предположим, что я ударил URL «http://123.com/register.db», и это возвращает register.db в качестве ответа. Мне нужно сохранить register.db, как и в моем локальном хранилище.
Мой код попасть в URL, как показано ниже
public static async Task LaunchURLForSync(string targetUrl)
{
try
{
using (HttpClient client = new HttpClient())
{
using (HttpResponseMessage response = await client.GetAsync(targetUrl, HttpCompletionOption.ResponseHeadersRead))
using (Stream streamToReadFrom = await response.Content.ReadAsStreamAsync())
{
string fileToWriteTo = Path.GetFileName();
using (Stream streamToWriteTo = File.Open(fileToWriteTo, FileMode.Create)) // This doesn't work with PCL for ex. FIle.Open etc
{
await streamToReadFrom.CopyToAsync(streamToWriteTo);
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}
Любая помощь будет высоко оценен. Заранее спасибо :)
ваш код на самом деле не рабочий: в строке 10 функция Path .GetFileName() принимает строку, но ваш код не имеет параметров. – Radinator
, как я исследовал, нет никакого способа pcl для загрузки и хранения файла в локальном хранилище. если вы хотите это сделать, вы должны реализовать его на каждой платформе – Radinator
@ Radinator, пожалуйста, следуйте hVaughan3, как это сделать, как он ответил. оно работает. вам необходимо загрузить данные и сохранить их в буфере данных и использовать хранилище PCL, которое вы можете записать в локальное хранилище. –