Datei mit Fortschrittsanzeige in Xamarin Forms herunterladen

Ich versuche, eine Download-Seite in Xamarin Forms (PCL, daher kann WebClient nicht verwendet werden) mit einem Download-Fortschrittsbalken zu erstellen. Ich habe die folgenden Informationen von Xamarin verwendet, aber ohne Erfolg:

http: //developer.xamarin.com/recipes/ios/network/web_requests/download_a_file http: //developer.xamarin.com/recipes/cross-platform/networking/download_progress

Dies ist mein aktueller Code (mit einem Fortschrittsbalken):

using System;
using System.Collections.Generic;

using Xamarin.Forms;
using System.Net.Http;
using System.IO;
using System.Threading.Tasks;

namespace DownloadExample
{
    public partial class DownloadPage : ContentPage
    {
        public DownloadPage ()
        {
            InitializeComponent ();

            DownloadFile("https://upload.wikimedia.org/wikipedia/commons/3/3d/LARGE_elevation.jpg");
        }

        private async Task<long> DownloadFile(string url)
        {
            long receivedBytes = 0;
            long totalBytes = 0;
            HttpClient client = new HttpClient ();

            using (var stream = await client.GetStreamAsync(url)) {
                byte[] buffer = new byte[4096];
                totalBytes = stream.Length;

                for (;;) {
                    int bytesRead = await stream.ReadAsync (buffer, 0, buffer.Length);
                    if (bytesRead == 0) {
                        await Task.Yield ();
                        break;
                    }

                    receivedBytes += bytesRead;

                    int received = unchecked((int)receivedBytes);
                    int total = unchecked((int)totalBytes);

                    double percentage = ((float) received) / total;

                    progressBar1.Progress = percentage;
                }
            }

            return receivedBytes;
        }
    }
}

Jetzt muss ich die Datei in meinem lokalen Speicher speichern. In diesem Beispiel wird der Dateiinhalt jedoch nicht abgerufen, sodass ich ihn nicht in meinen lokalen Speicher schreiben kann. Was muss ich im Code ändern, um dies zu ermöglichen?

FYI: In diesem Beispiel lade ich ein Bild herunter, es wird jedoch eine PDF- / DOC- / DOCX-Erweiterung sein.

Danke im Voraus

BR, FG

Antworten auf die Frage(4)

Ihre Antwort auf die Frage