저는 Xamarin을 처음 사용했습니다. .Net 어셈블리의 일부만으로 인해 많은 어려움을 겪고있는 PCL을 사용할 수 있습니다.PCL 지원을 사용하는 xamarin 크로스 플랫폼 프로젝트의 URL에서 파일을 다운로드하는 방법
로컬 드라이브에 저장하는 데 필요한 URL을 눌러 .db 파일을 다운로드해야합니다. 프로젝트가 PCL에 있으므로 내 프로젝트에서 System.IO.File을 사용할 수 없으므로 .Net 클래스 라이브러리에서 사용할 수있는 파일 작업을 수행 할 수 없게 만듭니다.
예 : 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 함수 경로에
, 당신은 다음을 수행 할 프로젝트의 당신의 모든에 라이브러리를 설치 한 후 당신이 원하는 것을 할 PCL 스토리지를 사용하려면 .GetFileName()은 문자열을 사용하지만 코드에는 매개 변수가 없습니다. – Radinator내가 조사한 바에 따르면 로컬 저장소에 파일을 다운로드하고 저장할 수있는 pcl 방법이 없습니다. 원하는 경우 각 플랫폼에 구현해야합니다. – Radinator
@Radinator 그가 응답 한 것처럼 hVaughan3 방식대로 수행하십시오. 그것은 작동합니다. 데이터를 다운로드하여 데이터 버퍼에 저장하고 PCL 스토리지를 사용하여 로컬 스토리지에 저장할 수 있습니다. –