2016-10-15 6 views
1

Ich versuche, eine App zu machen, die offene Daten verwenden. Die Daten, die ich auslesen möchte, sind im CSV-Format (und ungefähr 40 MB groß).C# uwp lesen csv aus dem Web

Ich habe 2 Probleme, die ich nicht lösen kann.

  • Zuerst habe ich Schwierigkeiten, die Datei aus dem Internet zu lesen. Ich lese schon auf MSDN, wie man Dateien Asynchron liest, aber es geht nur um lokale Dateien. Ich möchte eine Liste von Objekten erstellen. Jede Zeile (außer der ersten Zeile) enthält alle Requisiten für 1 Objekt

  • Zweitens, wenn ich endlich die Datei lesen konnte, gibt es eine Möglichkeit, die Daten zu speichern und sie beim nächsten Mal irgendwie zu lesen? Denn 40 MB ist ziemlich groß, um jedes Mal neu zu laden, wenn Sie die App öffnen, und es braucht viel Zeit. Ich habe mich gefragt, ob es möglich ist, dass wenn ich die Datei im Web wieder lese, wird es nur lesen und an den neuen Zeilen.

  • Ich bin ein Neuling in UWP (C#) Anwendungen, so entschuldige ich mich für die Fragen.

    Vielen Dank im Voraus.

    Antwort

    1

    Es gibt zwei APIs, mit denen Sie eine Datei herunterladen können. Eine ist HttpClient, beschrieben here on MSDN Documentation und in einer UWP sample here. Diese Klasse wird normalerweise für kleinere Dateien und kleinere Daten empfohlen, kann aber auch größere Dateien problemlos verarbeiten. Der Nachteil besteht darin, dass die Datei beim Herunterladen nicht mehr heruntergeladen wird. Die Alternative ist BackgroundDownloader, wiederum here on MSDN und here in UWP samples. Diese Klasse wird normalerweise zum Herunterladen größerer Dateien und Daten empfohlen, da sie den Download automatisch im Hintergrund durchführt, sodass der Download auch bei geschlossener App fortgesetzt wird.

    Um Ihre Dateien zu speichern, können Sie die ApplicationData.Current.LocalFolder verwenden. Dies ist ein spezieller Ordner, der Ihnen vom System zum Speichern von Anwendungsdateien zur Verfügung gestellt wird. Sie haben Lese-/Schreibzugriff auf diesen Ordner, und Sie können nicht nur Ihre Dateien hier speichern, sondern sogar eine Unterordnerstruktur mit den UWP-APIs StorageFile und StorageFolder erstellen. Mehr dazu finden Sie unter on MSDN.