Benutzer mit den meisten Antworten
StreamReader unter Windows Phone 10

Frage
-
Hallo!
Ich möchte gerne ein am PC generiertes Textdokument (.txt) auf meinem Handy (Windows Phone 10) auslesen, um die Informationen diese Dokumentes weiter in meinem Programm verwenden zu können.
Leider habe ich Schwierigkeiten mit der StreamReader Klasse. Wenn ich einen neuen StreamReader deklariere (StreamReader test = new StreamReader(pfad), wobei pfad der String ist, der den Datenpfad beinhaltet) nur der folgende Fehler erscheint:
"Fehler CS1503 Argument "1": Konvertierung von "string" in "System.IO.Stream" nicht möglich."Jetzt stellt sich mir die Frage, ob ich die StreamReader Klasse in der mobilen Version von Windows nicht gleich verwenden kann/darf, wie bei normalen WindowsForms Anwendungen. Hoffe ihr könnt mir helfen!
Danke im Voraus!
Antworten
-
Hallo,
unter UWP musst Du immer mit dem StorageFile arbeiten. Übergabe von Pfaden ist meistens nicht.
var assets = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets"); var txtFile = await assets.GetFileAsync("Doc.txt"); var stream = await txtFile.OpenStreamForReadAsync();
var text = await Windows.Storage.FileIO.ReadTextAsync(txtFile);
Gruß, Thomas
Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!
- Bearbeitet Thomas Wycichowski Dienstag, 3. Januar 2017 18:48
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 10. Januar 2017 09:57
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 20. Januar 2017 15:25
-
Hallo zusammen,
nur als kleine Ergänzung zu Thomas Antwort: Vergiss nicht den Stream wieder zu schließen bzw. benutze einfach gleich einen using-Block.
Wobei man sich das in vielen Fällen auch einfacher machen kann, indem man FileIO.ReadTextAsync o.ä. benutzt.var assets = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets"); var txtFile = await assets.GetFileAsync("Doc.txt"); //Den Text direkt auslesen var text = await Windows.Storage.FileIO.ReadTextAsync(txtFile); //oder mit Hilfe eines Streams using(var stream = await txtFile.OpenStreamForReadAsync()) { //Ggf. mit einem StreamReader using(var sr = new StreamReader(stream)) { //benutze sr } }
Viele Grüße, Tom Lambert - MVP, MCC und MSP
Wozu Antworten markieren und Posts bewerten? Klicke hier
Nützliche Links: .NET Quellcode | C#/VB.NET Konverter | GitHub Forum Samples | Account bestätigen (Verify Your Account)
Ich: Webseite | Facebook | Twitter | Code Snippets | GitHub- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 10. Januar 2017 09:58
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 20. Januar 2017 15:25
Alle Antworten
-
Hallo,
unter UWP musst Du immer mit dem StorageFile arbeiten. Übergabe von Pfaden ist meistens nicht.
var assets = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets"); var txtFile = await assets.GetFileAsync("Doc.txt"); var stream = await txtFile.OpenStreamForReadAsync();
var text = await Windows.Storage.FileIO.ReadTextAsync(txtFile);
Gruß, Thomas
Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!
- Bearbeitet Thomas Wycichowski Dienstag, 3. Januar 2017 18:48
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 10. Januar 2017 09:57
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 20. Januar 2017 15:25
-
Hallo zusammen,
nur als kleine Ergänzung zu Thomas Antwort: Vergiss nicht den Stream wieder zu schließen bzw. benutze einfach gleich einen using-Block.
Wobei man sich das in vielen Fällen auch einfacher machen kann, indem man FileIO.ReadTextAsync o.ä. benutzt.var assets = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets"); var txtFile = await assets.GetFileAsync("Doc.txt"); //Den Text direkt auslesen var text = await Windows.Storage.FileIO.ReadTextAsync(txtFile); //oder mit Hilfe eines Streams using(var stream = await txtFile.OpenStreamForReadAsync()) { //Ggf. mit einem StreamReader using(var sr = new StreamReader(stream)) { //benutze sr } }
Viele Grüße, Tom Lambert - MVP, MCC und MSP
Wozu Antworten markieren und Posts bewerten? Klicke hier
Nützliche Links: .NET Quellcode | C#/VB.NET Konverter | GitHub Forum Samples | Account bestätigen (Verify Your Account)
Ich: Webseite | Facebook | Twitter | Code Snippets | GitHub- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 10. Januar 2017 09:58
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 20. Januar 2017 15:25